c++ - 指向指针 vector 的指针

标签 c++ memory pointers memory-leaks

我正在更改其他人编写的一些代码。在代码的一部分中,他们使用了指向指针 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/

相关文章:

c++ - 是否可以通过 Visual Studio 从仅头文件制作静态库?

C++ 排序错误 "No instance of overloaded function.."

c++ - undef 后代码补全仍然确认宏

c++ - 我可以用静态的、constexpr、类内初始化的数据成员做什么?

c++ - 在 C++ 中存储/返回继承类的最佳方式

ios - Storyboard名称 :bundle: is allocating memory for stoyboard object?

c - Linux SPARSEMEM 内存模型真的很稀疏吗?

android - 在进程被操作系统杀死后重新启动应用程序

c - 为什么 "Germ"作为声明中的右值充当数组对象,但在赋值中的其他地方充当指针?

c++ - 为什么这行得通? C中的字符指针