class CMyApp : public CWinApp
{
//...
public:
CObArray m_arrBlock;
};void CMyApp::InitInstance()
{
//...
// CBlock 为自定义的类
this->m_arrBlock.Add( (CObject*)(new CBlock(/* 数个参数,此处省略*/)));
this->m_arrBlock.Add( (CObject*)(new CBlock(/* 数个参数,此处省略*/)));
//...
}编译成功,但结束应用程序时,提示 new CBlock 时内存泄露。
于是我加上:int CMyApp::ExitInstance()
{
for (int i=0; i<this->m_arrBlock.GetSize(); i++)
{
delete this->m_arrBlock[i];
}
}编译成功,但结束应用程序时,提示执行到 delete this->m_arrBlock[i]; 一句时,访问冲突。
{
//...
public:
CObArray m_arrBlock;
};void CMyApp::InitInstance()
{
//...
// CBlock 为自定义的类
this->m_arrBlock.Add( (CObject*)(new CBlock(/* 数个参数,此处省略*/)));
this->m_arrBlock.Add( (CObject*)(new CBlock(/* 数个参数,此处省略*/)));
//...
}编译成功,但结束应用程序时,提示 new CBlock 时内存泄露。
于是我加上:int CMyApp::ExitInstance()
{
for (int i=0; i<this->m_arrBlock.GetSize(); i++)
{
delete this->m_arrBlock[i];
}
}编译成功,但结束应用程序时,提示执行到 delete this->m_arrBlock[i]; 一句时,访问冲突。
{
for (int i=this->m_arrBlock.GetSize(); i>=0; i--)
{
delete this->m_arrBlock[i];
}
this->m_arrBlock.RemoveAll();
}
int CTzg005App::ExitInstance()
{
// TODO: Add your specialized code here and/or call the base class
for (int i=0; i<this->m_arrBlock.GetSize(); i++)
{
delete this->m_arrBlock[i];
}
this->m_arrBlock.RemoveAll();
return CWinApp::ExitInstance();
}
这个不加不会泄漏内存吧?