1.1 内存分布图
Stack段:局部变量存放区域。
heap段:用户动态分配内存区域。
bss段:存放未初始化的全局或静态变量内存区域。(Block Started by Symbol)
数据段:通常指存放已初始化的全局变量的内存区域。(data segment)
代码段:通常指存放程序执行代码的一块内存区域。(code segment/text segment)
1.2 在C中分为5个存储区(内存布局)
(1)栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等。其操作方式类似数据结构中的栈。
(2)堆区(heap):一般有程序员分配释放,若程序员不释放,程序结束时由系统释放。与数据结构的堆毫无关系,分配方式类似于链表。malloc,alloc,realloc
(3)全局/静态区:全局变量和静态变量的存储是在一块的。初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域
ÿ