我定义了一个类CMapCoverage,这个类中用CArray定义了另一个类的指针变量(CArray<CMapObject*,CMapObject*> m_pObject;),然后,我在doc类中又用CArray定义了这个类的变量:(CArray<CMapCoverage*,CMapCoverage*> m_pCoverage;),现在我想用菜单中的一个项,发消息析构掉m_pCoverage,我用了delete逐项循环清除它.结果报错,内存也不释放.但是我关掉运行的程序,它会按照我设定的析构函数清除掉,内存也得以释放.请高手大侠指教.
if(m_pCoverage.GetSize())
{
j=m_pCoverage.GetSize();
for(i=j;i>0;i--)
{
if(m_pCoverage.GetAt(i-1)->m_pObject.GetSize())
{
m=m_pCoverage.GetAt(i-1)->m_pObject.GetSize();
for(k=m;k>0;k--)
delete m_pCoverage.GetAt(i-1)->m_pObject.GetAt(k-1);
m_pCoverage.GetAt(i-1)->m_pObject.RemoveAll();
}
delete m_pCoverage.GetAt(i-1);
}
m_pCoverage.RemoveAll();
}
我也不太清楚,我改了很多次了,手里现在没有最近改过的,但是与此类似.