C和C++编译器把内存分为三块:基栈、浮动栈、堆:
- 基栈:也叫静态存储区,这是编译器在编译期间就已经固定下来必须使用的内存,如程序的代码段、静态变量、全局变量、const常量等。程序一调入内存,至少就要占用这么多空间。有个不大精确的算法,exe文件有多大,差不多基栈就有多大。
- 浮动栈:很多书称为“栈”,就是程序开始运行,随着函数、对象的一段段执行,函数内部变量、对象的内部成员变量开始动态占用内存,浮动栈一般都有生命周期,函数结束或者对象析构,其对应的浮动栈空间就拆除了,这部分内容总是变来变去,内存占用也固定,因此叫浮动栈
- 堆:C语言和C++语言都支持动态内存申请,即程序在运行期可以自由申请内存,这部分内存就是在堆空间申请的。
黑洞@heidsoft
Github:https://github.com/heidsoft
微博:http://weibo.com/liuganbin
热衷云计算和大数据
关注CloudStack,OpenStack,Linux c/c++/python/java
关注研究新技术