以下摘自<http://www.cnblogs.com/skynet/archive/2011/03/07/1975479.html>

 

进程内存管理

 

 

变量在内存中的布局可以总结为如下:

  • 变量(函数外):如果未初始化,则存放在BSS段;否则存放在data段
  • 变量(函数内):如果没有指定static修饰符,则存放在栈中;否则同上
  • 常量:存放在文本段.text
  • 函数参数:存放在栈或寄存器中

内存可以分为以下几段:

  • 文本段:包含实际要执行的代码(机器指令)和常量。它通常是共享的,多个实例之间共享文本段。文本段是不可修改的。
  • 初始化数据段:包含程序已经初始化的全局变量,.data。
  • 未初始化数据段:包含程序未初始化的全局变量,.bbs。该段中的变量在执行之前初始化为0或NULL。
  • 栈:由系统管理,由高地址向低地址扩展。
  • 堆:动态内存,由用户管理。通过malloc/alloc/realloc、new/new[]申请空间,通过free、delete/delete[]释放所申请的空间。由低地址想高地址扩展。

相关文章:

  • 2021-08-26
  • 2021-11-22
  • 2022-12-23
  • 2021-07-31
  • 2021-11-30
  • 2022-03-01
  • 2021-10-29
  • 2022-01-08
猜你喜欢
  • 2022-03-02
  • 2021-07-01
  • 2021-04-09
  • 2021-08-20
  • 2021-12-21
  • 2021-04-24
  • 2021-11-22
相关资源
相似解决方案