我正在更改其他人编写的一些代码。在代码的一部分中,他们使用了指向指针 vector 的指针。
class2 *pointofclass2 = new class2();
class1 * pointofclass1 = new class1(.....)
pointofclass2->push_back(pointofclass1);
然后是代码
delete pointofclass2;
现在我认为这是导致内存泄漏的原因。我以前从未遇到过这种情况,所以不确定这是否是原因?任何帮助将不胜感激。如果是这样,释放内存的正确方法是什么?
最佳答案
您正在删除 pointofclass2,但可能没有删除在 class1 的析构函数中保存 class1 指针的 vector 。在 new class1(...) 中创建的对象在哪里被删除?这是 C++,没有自动垃圾收集。
现在,如果 class2 是 vector ,您实际上不需要创建指向它的指针,因为 vector 无论如何都会在堆上分配内存。
关于c++ - 指向指针 vector 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9591977/