7.1 内存类型
C++分为四个区:
- 代码区:存放函数体的二进制代码,由操作系统进行管理
- 全局区:存放全局变量和静态变量(static修饰)以及常量(字符串常量/const修饰全局变量)
- 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等
- 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收
- 函数不要返回局部变量地址,因为局部变量在函数结束后会被释放
- 利用new 可以将数据存储到堆区,这时可以返回局部变量地址
7.2 new 和delete
new 可以将数据存储到堆区,例如 int* p = new int(10);
delete 将存储在堆区的数据释放 delete p;