我有以下代碼,並詢問是否有任何內存泄漏。我相信「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'中。 –