Chinaunix首页 | 论坛 | 博客
  • 博客访问: 417695
  • 博文数量: 122
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 688
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-04 12:30
文章分类

全部博文(122)

文章存档

2017年(5)

2016年(4)

2015年(56)

2014年(41)

2013年(16)

我的朋友

分类: LINUX

2013-09-04 21:05:19

.BSS段:存放未初始化的全局变量,不分配内存,仅记录所需内存大小。该段属于静态内存分配。该段大小可从可执行文件中得到,
        然后连接器得到这个大小的内存块,紧跟在数据段的后面。
数据段:存放初始化的全局变量,也属于静态内存分配。
代码段:存放程序执行代码的一块区域,这部分区域的大小在程序执行前就已经确定,并且通常属于只读。
堆:存放进程运行中动态分配的内存段,大小不固定,可动态扩张或缩减。malloc 函数分配的内存就会被动态添加到堆上,利用 free 函数释放内存时,被释放的
    内存会从堆上删除。
栈:用于存放程序创建的临时变量(auto型的局部变量)。另外,在函数被调用时,它的参数也会被压入栈中(发起调用的进程栈),调用结束后,函数的返回值也会被
    存放在栈中。所以,栈特别适合用来保存现场,我们可以吧栈看成是一个寄存、交换临时数据的内存区。
阅读(1145) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~