出現(xiàn)內(nèi)存泄露
上周調(diào)程,出現(xiàn)一點(diǎn)點(diǎn)小麻煩,特此MARK!
一直都在防止程序出現(xiàn)內(nèi)存泄露,由于太過(guò)認(rèn)真,所以反而出現(xiàn)問(wèn)題,得不到解決。
CubeData* data=new CubeData();
m_prop->PopulateWithCubeItems(data);
cubedata_list.push_back(data);
//delete data;---->防止程序出現(xiàn)內(nèi)存泄露,結(jié)果反而把數(shù)據(jù)提前刪除,
由于用到了WXWIDGET和IRRLICHT的STRING結(jié)構(gòu),誤以為兩者的結(jié)構(gòu)不兼容,結(jié)果調(diào)到半夜一兩點(diǎn)。
經(jīng)過(guò)一步步的跟蹤才發(fā)覺(jué)是上述問(wèn)題。
把它注釋后沒(méi)有BUG了,但出現(xiàn)內(nèi)存泄露。
于是,在全局析構(gòu)中,釋放內(nèi)存。問(wèn)題解決。
EditDiag::~EditDiag()
{
if(m_prop)
delete m_prop;
//*防止內(nèi)存泄露
list<CubeData*>::Iterator it = cubedata_list.begin();
for (; it != cubedata_list.end(); ++it)
{
delete (*it);
}//*/防止內(nèi)存泄露


m_mgr.UnInit();
}


