1. 程序的内存模型
C++程序在执行时,内存大概分为:
(1)代码区:存放二进制代码
(2)全局区:存放全局变量和静态变量以及常量
(3)栈区:编译器自动分配释放,存放函数的参数值、局部变量等
(4)堆区:程序员分配和释放,程序结束时OS回收
不同区域存放的数据,具有不同的生命周期,给予了更灵活的编程。
程序运行前:
(1)代码区:共享+只读
(2)全局区:数据在程序结束后由OS释放
程序运行后:
(1)栈区
(2)堆区
//new操作符
int *p=new int(0);//一个元素的初始化
delete p;
int *arr=new int[10];//一个数组的创建
for(int i=0;i<10;i++){
arr[i]=i;
}
delete []arr;