在C++中可以将内存布局大致分为如上图所示的几个区域
- 程序代码区主要用来存放程序的代码(包括可执行指令);
- 全局数据区主要存放全局变量,静态变量常量;
- 栈是存放程序中所有的动态局部变量,函数参数,函数的返回值等信息。栈是向下增长的,从栈中分配的内存效率特别的高,这也是C/C++能产生高效代码的原因之一;
- 在固定存储区域与堆栈之间的自由区域称为堆,堆是向上增长的,可以使用C++的动态内存分配系统从堆中为程序的数据分配内存单元。
这就是大致上的内存布局,很关键的和常用的就是堆和栈,我们一起在学习中不断完善这些问题。