C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区【转】
摘要:本文来源:http://www.cnblogs.com/dongsheng/p/3443696.html 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。堆可以动态地扩展和收缩。 自由存储区,就是那些由ma...
阅读全文
posted @ 2013-12-07 13:41