【发布时间】:2020-05-28 16:54:12
【问题描述】:
假设存在一个名为 Vec 的类,它的唯一成员是一个名为 arr 的向量。以下代码不会泄漏内存。 (这意味着我的 Vec 析构函数按预期工作。)
int main() {
Vec *obj = new Vec(5); // initializes a vector of size 5
delete obj;
}
但是,在以下代码中,存在内存泄漏。但为什么?对于new 的每次使用,我似乎都有一个delete。我错过了什么?
int main() {
Vec* obj;
obj = new Vec(5);
if (true) {
delete obj;
Vec* obj = new Vec(6);
}
delete obj;
}
PS:我使用 valgrind 检查了内存泄漏。
【问题讨论】:
标签: c++ c++11 memory-leaks