[C++]内存管理
在C++中,内存被分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区、和常量存储区。
栈(Stack),在执行函数时,函数内部局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元被释放。栈的内存分配预案算内置于处理器指令集中,效率很高,但是分配的内存容量有限。
堆(Heap),就是由new分配的内存块,编译器不会考虑他们的释放,应该由程序去控制,一半一个new就要对应一个delete。如果程序员没有释放掉,在程序结束后,操作系统可能会自动释放掉。
自由存储区(Free Store),就是那些由malloc等分配的内存块,它和堆非常相似,只不过由free结束声明。