0

这就是我为二维数组分配动态内存的方式

char **twod;

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

这就是我释放二维数组内存的方式

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

  }
   delete [] twod;

我怎么知道我已经成功发布了所有内容并且没有内存泄漏???

4

1 回答 1

4

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

在 valgrind 或任何此类内存泄漏检测工具中运行代码。
如果您愿意,您还可以为您的班级重载newanddelete运算符并自己进行簿记,但是这太费力了,所以您最好使用内存泄漏检测工具进行设置。

当然,我认为该示例只是一个示例示例,而不是通常会使用的代码,因为:

  1. 你最好避免动态分配,而是使用自动变量。
  2. 如果您必须使用带有 RAII 的智能指针而不是原始指针。
于 2013-01-27T07:00:24.470 回答