问题遇到的现象和发生背景
多次 new
一个对象然后只调用一次 delete
会造成内存泄漏吗?
问题相关代码,请勿粘贴截图
#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass() {
cout << "constuct@ " << this << endl;
}
~MyClass() {
cout << "destruct@ " << this << endl;
}
};
int main() {
int count = 0;
MyClass* cls;
cout << "address_" << ++count << "@ " << &cls << endl;
cls = new MyClass;
cout << "address_" << ++count << "@ " << &cls << endl;
cls = new MyClass;
cout << "address_" << ++count << "@ " << &cls << endl;
delete cls;
return 0;
}
运行结果及报错内容
address_1@ 0000007A31DDFB58
constuct@ 00000233AB011210
address_2@ 0000007A31DDFB58
constuct@ 00000233AB011120
address_3@ 0000007A31DDFB58
destruct@ 00000233AB011120