当前位置:网站首页>C+ + core programming
C+ + core programming
2022-07-28 20:01:00 【Ordinary konjaku 99】
C+ + Programming core
1 Memory partition model
C+ + Program in execution , The main direction of memory is divided into 4 Regions
- Code section : Store the binary code of the function body , Managed by the operating system
- Global area : Store global and static variables and constants
- The stack area : Release is automatically allocated by the compiler , Stores the parameter values of the function , Local variables, etc
- Heap area : Assigned and released by the programmer , If programmers don't release , Retracted by the operating system at the end of the program
The meaning of four areas of memory :
Data stored in different areas , Give different life cycles , Give us more flexible programming
1.1 Before the program runs
After the program is compiled , Generated exe Executable program , Before the program is executed, it is divided into two areas :
- Code section : Deposit CPU Machine instructions executed
The code area is Shared , The purpose of sharing is for programs that are frequently executed , Just have a copy of the code in memory
The code area is read-only , The reason to make it read-only is to prevent the program from accidentally modifying its instructions
- Global area : Global variables and Static variables Store here
The global area also contains Constant District , String constants and other constants are also stored here . The data in this area is released by the operating system at the end of the program .
1.2 After program running
The stack area : Release is automatically allocated by the compiler , Stores the parameter values of the function , Local variables, etc
matters needing attention : Do not return the address of a local variable , The data opened in the stack area is automatically released by the compiler
Heap area : Assigned and released by the programmer , If programmers don't release , Retracted by the operating system at the end of the program
stay C+ + The main use of new Open up memory in the heap
int *func()
{
// utilize new keyword , Data can be opened up to the heap
// Pointers are also local variables in nature , Put it on the stack. , Pointer saved Put the data in the heap
int *p = new int (10);
return p;
}
int main()
{
// Open up data in the heap
int *p = func();
cout << *p << endl;
system("pause");
return 0;
}
The output of this code is 10
1.3 new The operator
C+ + of use new The operator creates data in the heap
Data from the development of the reactor area , It's created manually by the programmer , Hand release , Release with operator delete
utilize new Data created , Will return a pointer to the type corresponding to the data
new Basic syntax
int *func()
{
// Create shaping data in the heap
//new Returns a pointer to the data type
int *p = new int (10);
return p;
}
int main()
{
// The data in the heap area is managed and developed by the programmer , Release
// If you want to release data from the heap , With keywords delete
int *p = func();
cout << *p << endl;
delete p;
//cout << *P << endl; Memory has been freed , Illegal access again , Will report a mistake
system("pause");
return 0;
}
Open up an array in the heap
int *func()
{
// establish 10 An array of shaped data , In the pile area
int *arr = new int[10];
// The number in brackets is the length of the array
for(int i = 0; i<10; i++)
arr[i] = i+100;
for(int i = 0; i<10; i++)
cout<< arr[i] << endl;
// Free heap array , To add brackets
delete[] arr;
}
边栏推荐
- Amazon launched Amazon one palm payment system, and the contactless palm vein recognition market is expected to explode
- shared_ PTR and make_ Use of shared
- Digital filter design matlab
- Return and job management of saltstack
- Investment of 3.545 billion yuan! Gree Group participates in Xiaomi industry fund
- 时间转日期的sql语句应该怎么写?
- 云原生编程挑战赛火热开赛,51 万奖金等你来挑战!
- Common modules of saltstack
- Verification of chip power consumption performance: from dilemma to transcendence
- MySQL8 tmp_table_size和max_heap_table_size
猜你喜欢

Android-第十三节03xUtils-数据库框架(增删改查)详解

How many types of rain do you know?

Design of air combat game based on qtgui image interface

Article translation software - batch free translation software supports major translation interfaces

Basic knowledge of communication network 01

基于MATLAB的函数拟合

shared_ PTR and make_ Use of shared

毕马威中国:证券基金经营机构信息技术审计项目发现洞察

时间转日期的sql语句应该怎么写?

KPMG China: insights into information technology audit projects of securities fund management institutions
随机推荐
JS preventdefault() keyboard input limit onmousewheel stoppropagation stop event propagation
Business visualization - let your flowchart "run" (4. Actual business scenario test)
Sequential linear table - practice in class
Leetcode day2 连续出现的数字
CodeIgnier框架实现restful API接口编程
利用STM32的HAL库驱动1.54寸 TFT屏(240*240 ST7789V)
Leetcode day3 find duplicate email addresses
Why is there no log output in the telnet login interface?
String中常用的API
How navicate modifies the database name
Amazon launched Amazon one palm payment system, and the contactless palm vein recognition market is expected to explode
KPMG China: insights into information technology audit projects of securities fund management institutions
Servlet学习笔记
Basic usage of docker
你知道雨的类型有几种?
This customized keyboard turns me on~
Thoroughly understand bit operations -- and (&), not (~), or (|), XOR (^)
NPM installing and uninstalling global packages
Android-第十三节03xUtils-数据库框架(增删改查)详解
Germany and Portugal have announced that they will not disable Huawei 5g equipment, but Germany will set strict restrictions!