C++程序在执行时,将内存大方向划分为四个区域:
1、代码区:存放函数体的二进制代码,特点是共享和只读。
2、全局区:存放全局变量、静态变量和常量(字符串常量和const修饰的变量)。该区域的数据在程序结束后由操作系统释放。
3、栈区:由编译器自动分配和释放,存放函数的参数、局部变量等。
4、堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。利用new关键字,在堆区开辟内存;利用delete关键字,在堆区释放内存。
程序在运行前会划分代码区和全局区,运行后才会有栈区和堆区。
其中,new和delete的用法。
int *p = new int(10);
delete p;
int *arr = new int[10];
delete[] arr;