1.代码区:text segment
加载的是可执行文件代码段
2.数据区:data segment
位置可位于代码段后,也可以分开。程序在运行之初就为该数据段申请了空间,在程序退出时才释放,因此,存储于数据段(全局初始化,静态初始化数据)的数据的生存周期为整个程序运行过程。
3.未初始化数据区:BBS, Block Startedby Symbol
位置可分开亦可以紧靠数据段。程序在运行之初就为该数据段申请了空间,在程序退出时才释放,因此,存储于数据段(全局未初始化,静态未初始化数据)的数据的生存周期为整个程序运行过程。
4.栈区:stack
由编译器自动分配释放,存放函数的参数值,返回值,局部变量等。在程序运行过程中实时加载和释放。
5.堆区:heap
堆在内存中位于BBS区和栈区之间,一般由程序员分配和释放。若程序员不释放,程序退出时可能由OS回收。