程序中各段内存分配


进程内存布局(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都是在堆中。

X86中程序的内存结构

ARM中的内存结构


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值