我有以下代码,并询问是否有任何内存泄漏。我相信“function”里面有内存泄漏,因为在a = new A()之后没有删除操作。 。我对吗?内存泄漏点
class A
{
public:
A(){};
~A(){};
private:
double d[10];
};
void function (A* a)
{
delete a;
a = new A();
}
void main (void)
{
A* p = new A();
function(p);
delete p;
}
是的你是对的。 –
它比仅仅有一个内存泄漏更糟......你也是在函数(A * a)和main()中一次删除A ...的第一次分配。 – aSteve
还有一个双重删除,因为'p'被删除两次,一次在'function'中,一次在'main'中。 –