我有一个**object
(**personnel
)作为内部(组合)另一个对象的成员,我想释放指向另一个()的内存**personnel
并将其指向另一个**temp
(personnel=temp
),而不需要delete
ing**personnel
并且只是personnel=temp
让程序运行良好,但是如果我试图delete **personnel
让它混乱一切都好,我总是得到一个错误“ _Block_Type_Is_Valid (pHead->nBlockUse)
”
(我有析构函数(和virtual
基本析构函数),其中一些什么都不做,但我仍然得到错误)。(我从各个角度都试过了delete personnel[i]
,delete []personnel[i]
等等))
(为此失去了几天)
我做错了什么,是否正确delete
,如果是,我该怎么做?
编辑:
if(personnel!=NULL)
{
for(i=0;i<numberofemployees;i++)
{ **/*what to do here*/**
delete []this->personnel[i];
}
/*delete personnel;*/
}
personnel=temp;
numberofemployees++;
}
**personnel是这个类的成员,(Employee **personnel,employee是其他派生类的基类,各种员工,我用的是多态),这个函数只是添加一个员工,函数很长这就是为什么我只放了一部分,希望你能理解我,如果我不删除似乎一切正常,否则我会得到断言错误,