Skip to content

c++核心编程

内存区域

  1. 代码区:操作系统管理;
  2. 全局区:全局变量,静态变量,常量;
  3. 栈区:编译器自动分配;
  4. 堆区:程序员分配和释放,程序结束后由操作系统回收。

程序运行前

  1. 代码编译,生成exe程序;
  2. 代码区存放了CPU执行的机器指令;
  3. 代码区共享只读的;
  4. 全局区包含全局变量,静态变量;
  5. 全局区包含了常量区,字符串常量和其他常量;
  6. 该区域的数据在程序结束后由操作系统释放。

image-20220516161205839

程序运行后

栈区是由编译器自动分配和释放的,存放函数的参数,局部变量等

不要返回局部变量的地址,因为其由编译器自动释放

用new在堆区开辟内存

int* p = new int(10);
delete p;