c++基础知识-程序内存模型
作者:互联网
一、程序内存模型
根据运行前与运行后,一共分为四大区域:
1.程序运行前:代码区、全局区;
2.程序运行后:栈区、堆区;
二、代码区
程序运行前写的所有代码,最后全部转换成二进制录入电脑
三、全局区
包括:
全局变量:写在函数体之外的变量;
静态变量:在普通变量前加关键字static;
常量:字符串常量与const修饰的全局变量;
四、栈区
局部变量、形参;该区域数据是由编译器管理开辟和释放。
注:不要返回局部变量地址!
五、堆区
由程序员分配释放,程序结束时由系统回收。
利用new关键字,可将数据开辟到堆区,即地址不会被自动释放。
可利用关键字delete释放数据。
1 //new基本语法 2 int* func() 3 { 4 int * p=new int(10); //new返回是该数据类型指针 5 return p; 6 } 7 //堆区开辟数组 8 void test01() 9 { 10 //创建10整型数据的数据在堆区 11 int* arr = new int[10]; //10代表数组有10个元素 12 for (int i = 0; i < 10; i++) 13 { 14 arr[i] = i + 100; 15 } 16 for (int i = 0; i < 10; i++) 17 { 18 cout << arr[i] << endl; 19 } 20 //释放堆区数组:加中括号 21 delete[] arr; 22 } 23 24 int main() 25 { 26 int* m = func(); 27 cout << *m << endl; //堆区数据不会自动释放 28 //用关键字delete释放 29 delete m; 30 test01(); 31 32 }
TRANSLATE with x English TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back
标签:10,程序运行,int,堆区,c++,基础知识,内存,new,location 来源: https://www.cnblogs.com/haipengwu/p/15760572.html