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;