静态存储区(BSS、数据段、代码段),堆区(heap),栈区(stark)
BSS
通常是指内存中存放程序中未初始化的全局变量与静态变量的区域,BSS属于静态内存分配。
数据段
通常是指内存中存放程序中已经初始化的全局变量与静态变量的区域,数据段属于静态内存分配。
代码段
代码段(code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。
堆区
动态分配的内存区,大小不固定,需要程序员手动分配malloc,手动释放free。
栈区
是用户存放程序临时创建的局部变量,{}内定义的变量,由OS自动分配释放。