C++核心——内存分区

C++程序在执行时,将内存大方向划分为4个区域

  • 代码区:存放函数体的二进制代码,由操作系统进行管理的
  • 全局区:存放全局变量和静态变量以及常量
  • 栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等
  • 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收

四区的生命周期

程序运行前:经过编译后未执行程序,此时主要是代码区和全局区

  • 代码区:存放机器码,即编译后生成的二进制或者十六进制的文件,代码区是共享的只读。
  • 全局区:包含全局变量、静态变量和常量。

程序运行后:栈区和堆区

  • 栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等。
  • 堆区:由程序员分配释放,若程序员不释放,程序结束时由操作系统回收在C++中主要利用new在堆区开辟内存。特别主要:堆区空间在开辟后需要及时使用delete删除,否则会造成内存泄漏问题
发布了14 篇原创文章 · 获赞 0 · 访问量 2392

猜你喜欢

转载自blog.csdn.net/wtzhu_13/article/details/105120523