首页 > 其他 > 详细

c程序内存分配

时间:2015-07-21 18:32:37      阅读:286      评论:0      收藏:0      [点我收藏+]

进程内存布局(x86架构)

--------------------------------------------------------------------------

0x08048000    code            .text,代码,只读

              data            .data,包含已经初始化的数据,只读

              bss             .bss,未初始化数据,初始化成0,读/

              ...             堆区,动态分配获取的内存从.bss往内存高端增长

              ...             (heap),读/

              ...

              stack           栈区,起始地址大于0xBFFF0000

              arguments       main()的形参

              environment     环境变量区域

              program name    execve()第一形参,不是argv[0]

0xBFFFFFFC    null(dword)     最后四个字节固定为零

0xC0000000

--------------------------------------------------------------------------

当然这里边还涉及一些动态库的加载,这些是在堆区,也有可能是在堆之前,

x86上是在堆之前(即在0x08048000之前),但是如果动态库太大的时候,也会加载到堆中;ARM都是在堆中。

 

c程序内存分配

原文:http://www.cnblogs.com/mylinux/p/4665266.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!