对于一个C语言程序而言,内存空间主要由以下几个部分组成:
1)程序代码区:用来存储程序的二进制代码
2)全局区/静态存储区
3)BSS段:用来存储未初始化的全局变量和静态变量。
4)栈区:存储局部变量,函数的形参。
5)堆区:动态分配的内存。
用图示表示如下: