【C++】:内存管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bqw18744018044/article/details/88617580
  • 内存分配方式

C++内存分为5个区,分别是堆、栈、全局/静态存储区、常量存储区和程序代码区。

堆:动态内存分配(new/delete,malloc/free),内存不连续且会产生碎片;

栈:局部变量、函数参数等存储在该区,由编译器自动分配和释放;

全局/静态存储区:全局变量和静态变量存储在该区;

常量区:存储常量;

程序代码区:存放程序的二进制代码;

  • 堆和栈的区别

空间大小:栈的空间连续且有大小限制,堆的空间不连续且没有大小限制;

管理方式:栈由编译器自动分配和释放,堆由程序员分配和释放;

分配效率:栈的分配效率更高一些;

碎片问题:栈不产生碎片,而堆产生;

猜你喜欢

转载自blog.csdn.net/bqw18744018044/article/details/88617580