linux内存分布

来源:互联网 发布:qt5 socket编程 编辑:程序博客网 时间:2024/04/28 17:02
 如下图所示:
按照内存地址由高到低的顺序

栈:   由编译器自动分配释放管理.
       用于函数调用,保存函数的返回地址,函数的参数,函数内部定义的局部变量.
堆 : 需要由程序员分配释放管理,若程序员不释放,程序结束时可能由OS回收。通常在堆中进行动态存储分        配。(建议一定要手动释放,不然会造成内存泄漏)
未被初始化数据段(bbs)
     它属于静态存储区,但是该段中的数据没有经过初始化.即存放未初始化的静态变量或全局变量.
数据段
     数据段分为读写数据段只读数据段
    
     读写数据段
      已初始化的全局变量或者已初始化的静态变量.
     只读数据段
      只读全局量和只读局部量(使用const); 程序中使用的常量.
代码段
       即二进制代码,代码段是只读的,可被多个进程共享.
0 0