思维导图 内存空间布局图 C/C++编译的程序占用内存分为一下几个部分 栈区:由编译器自动分配与释放,存放着运行时函数分配的局部变量,函数参数,返回数据,返回地址。其操作类似于数据结构中的栈堆区:一般由程序员移动分配,如果程序员没有释放,程序结束有OS回收。其分配类似于链表。全局区:存放全局变量,静态数据,常量。程序结束后由系统释放。全局区分为初始化全局区和未初始化全局区。常量区:存放常量字符串,程序结束后释放。代码区:存放函数体(类成员函数和全局区)的二进制码。