设为首页 加入收藏

TOP

C语言运行时数据 (二)
2014-11-23 22:04:12 来源: 作者: 【 】 浏览:1
Tags:语言 行时 数据

堆栈段

空洞

a. a.out神奇数字

b. a.out的其他内容

c. BSS数据段所需大小 ----------------------------------------> BSS段

d. 数据段(初始化后的全局和静态变量)--------------------> 数据段

e. 文本段(可执行文件的指令) --------------------> 文本段

代码段包含要执行的指令,数据段包含经过初始化的全局和静态变量以及他们的值(可能不同的编译器的某些特性稍有差异),BSS段的大小从可执行文件的bss段得到,紧跟在数据段之后,当bss内采取进入程序的地址空间后全部清0,数据段和BSS段统称数据区。

这些区域还不足以满足一个程序的所有需求,因为一个进程还需要保存局部变量、临时变量、传递到函数中的参数以及返回值等,堆栈段就是用于这个目的。当然也少不了堆空间,用于满足进程的动态分配内存的需求。

要注意的是一个用户进程的虚拟地址空间最低部分并未被映射,就是说在进程的最低虚拟地址的几K字节没有做页表映射(赋予物理地址),这样它可以用于捕捉空指针和小整形值得指针引用内存情况。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C运算符优先级的错误 下一篇狼追兔子问题C模拟解

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: