如何判断您是否已成功释放动态分配的内存

时间:2013-01-27 06:59:08

标签: c++ memory memory-management

这就是我为2D数组分配动态内存的方法

char **twod;

twod=new char*[count];
for (int i = 0; i < count; i++)
{
    twod [i] = new char [MAX];
}

这是我释放2D数组的内存

for (int i=0; i<count;i++)
  {
      delete [] twod [i];

  }
   delete [] twod;

我如何知道我已成功发布所有内容并且没有内存泄漏???

1 个答案:

答案 0 :(得分:4)

  

判断您是否已成功释放动态已分配内存的方法

在valgrind或任何此类内存泄漏检测工具中运行代码 如果你想要,你也可以为你的班级重载newdelete运算符并自己动手做,但这样做太费劲,所以你最好不要设置内存泄漏检测工具。

当然,我认为这个例子只是一个示例,而不是代码通常会用于:

  1. 最好避免动态分配,而是使用自动变量。
  2. 如果必须使用带有RAII的智能指针而不是原始指针。