当前位置:网站首页>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;
}
边栏推荐
- CodeIgnier框架实现restful API接口编程
- 毕马威中国:证券基金经营机构信息技术审计项目发现洞察
- Application skills of programming rising and falling edge instructions of botu 1200/1500plc (bool array)
- How to write the SQL statement of time to date?
- shared_ PTR and make_ Use of shared
- 冲刺金九银十丨熬夜半个月汇集大厂Android岗1600道面试真题
- Verification of chip power consumption performance: from dilemma to transcendence
- 云计算笔记part.2——应用管理
- Android-第十三节03xUtils-数据库框架(增删改查)详解
- Leetcode day3 find duplicate email addresses
猜你喜欢
This customized keyboard turns me on~
String中常用的API
English translation Portuguese - batch English conversion Portuguese - free translation and conversion of various languages
Function fitting based on MATLAB
Theoretical knowledge of digital image (I) (personal analysis)
Common APIs in string
Article translation software - batch free translation software supports major translation interfaces
In the second half of 2022, the system integration project management engineer certification starts on August 20
架构基本概念和架构本质
High beam software has obtained Alibaba cloud product ecological integration certification, and is working with Alibaba cloud to build new cooperation
随机推荐
【经验之谈】关于维修电子设备的几点建议和经验
Hebei: stabilizing grain and expanding beans to help grain and oil production improve quality and efficiency
Question bank and answers of the latest national fire-fighting facility operators (intermediate fire-fighting facility operators) in 2022
English translation Italian - batch English translation Italian tools free of charge
Codeignier framework implements restful API interface programming
Function fitting based on MATLAB
Leetcode Day5 delete duplicate email
Germany and Portugal have announced that they will not disable Huawei 5g equipment, but Germany will set strict restrictions!
How does app automated testing achieve H5 testing
冲刺金九银十丨熬夜半个月汇集大厂Android岗1600道面试真题
China's first chip stamp released: built-in 120um ultra-thin NFC chip
Information management system and games based on C language
Android-第十三节03xUtils-数据库框架(增删改查)详解
[NPP installation plug-in]
基于QTGUI图像界面的空战游戏设计
CDGA|工业互联网行业怎么做好数据治理?
Integration and implementation of login click graphic verification code in personal blog system
毕马威中国:证券基金经营机构信息技术审计项目发现洞察
CodeIgnier框架实现restful API接口编程
Cloud computing notes part.2 - Application Management