Mem Mgmt
内存布局
一个典型的C程序在内存中分为以下几个区域:
-
代码区(Text Segment)
- 存放程序的机器指令,是只读的。
-
静态存储区(Static Storage)
-
数据段(Data Segment):存放已初始化的全局变量和静态局部变量(用
static关键字修饰)。 -
BSS段(BSS Segment):存放未初始化的全局变量和静态局部变量。在程序开始执行前,系统会自动将这个区域的数据初始化为0或NULL。
-
-
堆区(Heap)
- 用于动态内存分配,比如
malloc,calloc,realloc申请的内存就在堆上。
- 用于动态内存分配,比如
-
栈区(Stack)
- 用于存放函数的局部变量、函数参数、返回地址等。它的管理是自动的,由编译器完成。
堆管理