C程序的内存由以下部分组成:
正文段:由cpu执行的机器指令部分
初始化数据段:全局变量中已初始化部分
非初始化数据段:全局变量中未初始化部分
栈:局部变量和每次函数调用时所需保存信息都存放在此段
堆:通常在堆中进行动态存储分配
这些段的一种典型排列方式是:
命令行参数和环境变量 高地址
栈
堆
未初始化数据段
初始化数据段
正文 低地址
在linux2.6内核下用g++编译器编译的执行结果:
命令行参数和环境变量
environ: c34b3718
栈
a: c34b3614
b: c34b3610
堆
c: 501010
非初始化数据段
g_b: 500cd8
g_a: 500cd4
初始化数据段
g_init_a: 500ccc
g_init_b: 500cd0
正文段
fun: 4006d8
友情链接:网购优惠信息网