C++中的内存分配有哪几种方式?
在栈上分配:在执行函数时,局部变量的内存都可以在栈上分配,函数结束时会自动释放;栈内存的分配运算内置于处理器的指令集中,效率很高,但分配的内存容量有限;
从堆上分配:由new
分配/delete
释放的内存块,也称为动态内存分配,程序员自行申请和释放内存,使用灵活;
从自由存储区分配:由malloc
分配/free
释放的内存块,与堆类似;
从常量存储区分配:特殊的存储区,存放的是常量,不可修改;
从全局/静态存储区分配:编译期间分配内存,整个程序运行期间都存在,如全局变量、静态变量等。