构造函数主体内的本地指针C++内存泄漏

Memory leak by local pointer inside C++ constructor body

本文关键字:指针 C++ 内存 泄漏 主体 构造函数      更新时间:2023-10-16

嗨,有一个与此非常相似的代码

// Constructor
Foo() {
int * ptr = new int[100];
/* More Stuff */
}

这会导致内存泄漏,有没有办法在不使其成为成员变量的情况下删除ptr

这是你如何做到的。当您不再需要ptr时,请将其删除:

delete[] ptr;

确保查找deletedelete[]之间的区别。这是一个参考。

话虽如此,正确的事情TM是使用std::unique_ptr。或者,如果您只需要一个动态大小的数组,请使用std::vector