C程序映像中内存的空间分布

本文详细解读了C程序中内存空间的分布情况,包括栈、堆、初始化与未初始化数据区以及正文段等。重点分析了在栈上分配一个unsignedchar buf[4]数组的具体布局,并通过示意图直观展示。

这里只放下一张图,供使用:

C程序映像中内存的空间分布图:

|-----------------------------最高内存地址:0xffff ffff
|-----栈底
|-----栈(编译器自动分配,主要存放函数参数,局部变量)
|-----栈顶
|--------------------------
|
|
|-----NULL(空洞)
|
|
|--------------------------
|
|
|-----堆(由程序员分配,释放)
|
|
|--------------------------
|
|-----未初始化数据------------
|         \
|--------------------------    |---统称数据段(存放全局变量,静态变量,字符串常量,由系统释放)
|         /
|-----初始化数据--------------
|
|--------------------------
|
|-----正文段(代码段)
|
|-----------------------------最低内存地址:0x0000 0000


在栈上分配一个unsigned char buf[4];数组在栈上布局:
|-----------栈底(高地址)
buf[3]
buf[2]
buf[1]
buf[0]
|-----------栈顶(低地址)


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值