C语言在内存中一共分为如下几个区域,分别是:
  1. 内存栈区(stack):存放局部变量名;
  2. 内存堆区(heap):存放new或者malloc出来的对象;
  3. 常数区:存放局部变量或者全局变量的值;
  4. 静态区(static area):存放全局变量或者静态变量;
  5. 代码区:二进制代码。
C/C++不提供垃圾回收机制,因此需要对堆中的数据进行及时销毁,防止内存泄露,使用free和delete销毁new和malloc申请的堆内存,而栈内存是动态释放。