C/C++程序运行时的存储分配

C/C++程序运行时的存储分配

保留地址区

专门为目标机体系结构和操作系统保留的内存地址区。通常,该区域不允许普通的用户程序存取,只允许操作系统的某些特权操作进行读写。

代码区

静态存放编译程序产生的目标代码

静态数据区

该区域用于存放程序中用到的所有常量数据对象(如字符串常量,数值常量以及各种命名常量等)以及各类全局变量和静态变量所对应的数据对象。

共享库和分别编译模块

静态存放共享库模块和分别编译模块的代码和全局数据

动态数据区

运行时动态变化的堆区和栈区,堆区地址由低到高变化,栈区地址由高到低变化。在过程/函数实现的过程中,参与栈式存储分配的存储单位是活动记录,即栈上的栈帧。栈帧包含局部变量,函数实参,临时值等数据信息以及必要的控制信息。当数据对象的生存期与创建它的过程/函数的执行期无关时,一种灵活但是代价比较昂贵的存储分配方式就是堆式存储分配

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章