【发布时间】:2012-03-06 21:11:19
【问题描述】:
我正在更改其他人编写的一些代码。在代码的一部分中,他们使用了指向指针向量的指针。
class2 *pointofclass2 = new class2();
class1 * pointofclass1 = new class1(.....)
pointofclass2->push_back(pointofclass1);
然后是代码
delete pointofclass2;
现在我认为这会导致内存泄漏。我以前从未遇到过,所以不确定这是否是原因?任何帮助将不胜感激。如果是这样,释放内存的正确方法是什么?
【问题讨论】:
-
那么
class2是否继承自vector?您绝对应该以您的方式删除pointofclass2,但您是否想知道pointofclass1是否仍驻留在内存中的某个位置?应该在class2的析构函数中清理它。你怎么知道你在泄漏内存?瓦尔格林? -
A) 我有内存泄漏。例如当我运行程序时,它会继续消耗越来越多的内存(它不应该) B)我可能会从 Valgrind 中迷路,它显示了 class1 * pointofclass1 = new class1 (....) 的行。
标签: c++ memory pointers memory-leaks