c++核心编程
内存区域
- 代码区:操作系统管理;
- 全局区:全局变量,静态变量,常量;
- 栈区:编译器自动分配;
- 堆区:程序员分配和释放,程序结束后由操作系统回收。
程序运行前
- 代码编译,生成exe程序;
- 代码区存放了CPU执行的机器指令;
- 代码区是共享、只读的;
- 全局区包含全局变量,静态变量;
- 全局区包含了常量区,字符串常量和其他常量;
- 该区域的数据在程序结束后由操作系统释放。
程序运行后
栈区是由编译器自动分配和释放的,存放函数的参数,局部变量等
不要返回局部变量的地址,因为其由编译器自动释放
用new在堆区开辟内存
int* p = new int(10);
delete p;