C++中内存的分配有:内存池,静态内存和栈内存。
静态内存:用来保存局部static对象,类中static变量,以及全局变量;
栈内存:保存定义在函数内部的非static变量,对象。
分配在静态内存或栈内存中的对象和变量由编译器自动创建和销毁,对于栈对象和变量,仅在所定义的程序块运行时才存在,离开该代码块,则自动销毁。而对于静态内存中的变量和对象,则在使用之前就对之分配内存,在整个程序结束时才销毁。
内存池:又称为堆或自由空间,程序用堆来存储动态分配的对象,即程序运行时分配的对象,或者说是new,malloc等在程序中分配出来的对象。其生存周期由程序控制,当不再使用时,要显示的销毁。