浅析c++的内存分配

在这里简单聊聊c++的底层内存分配。

咱们在这里首先知道一下c++的内存分布为三个区。

1:栈区:

我们书写的main函数和自定义函数里用到的所有变量都分配在栈里边,栈里的内存是由系统直接管理,当我们结束一个函数或者具体说当我们离开代码块的作用域,我们的系统就会帮我们手动回收我们开辟的空间。(这也是为什么我们自定义指针不采用new时,我们返回的指针地址会被回收的原因,因为一旦离开函数,系统就会回收地址)。

2:堆区:

堆区是我们程序猿自己管理的内存地址。主要存储我们new出来的玩意。堆区的变量不会随着函数的执行完毕而被程序回收,只有我们delete才会被回收空间。因此广大程序猿们一定要及时回收自己在堆中开辟的空间哟,不然会出现内存泄漏。

3:全局变量区

这个区主要放置了我们开在main函数外部的代码和一些用static修饰得到静态变量,他的生存周期随着main函数的运行结束而结束。基本整个程序运行中存活

你可能感兴趣的:(c++与数据结构系列,c++,内容运营,内存分布)