C程序存储空间布局
- 作者:zhaozj
- 发表时间:2020-12-23 10:55
- 来源:未知
C程序一直由下列部分组成:
1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。4)栈——增长方向:自顶向下增长;自动变量以及每次函数调用时所需要保存的信息(返回地址;环境信息)。5)堆——动态存储分。
|-----------|| ||-----------|| 栈 | |---------- || | | | /|/ || || || /|/ || | | |----------|| 堆 ||-----------|| 未初始化 ||-----------||初始化 ||-----------||正文段 ||-----------|