版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bqw18744018044/article/details/88617580
-
内存分配方式
C++内存分为5个区,分别是堆、栈、全局/静态存储区、常量存储区和程序代码区。
堆:动态内存分配(new/delete,malloc/free),内存不连续且会产生碎片;
栈:局部变量、函数参数等存储在该区,由编译器自动分配和释放;
全局/静态存储区:全局变量和静态变量存储在该区;
常量区:存储常量;
程序代码区:存放程序的二进制代码;
-
堆和栈的区别
空间大小:栈的空间连续且有大小限制,堆的空间不连续且没有大小限制;
管理方式:栈由编译器自动分配和释放,堆由程序员分配和释放;
分配效率:栈的分配效率更高一些;
碎片问题:栈不产生碎片,而堆产生;