发现有一个动态链表每次释放后在WindowsXP的任务管理器
中程序占用的内存不减反增。不知是何原因,请指教。
for(i=0;i<=m_MapDoc.m_PolygonArray.GetUpperBound();i++)
{
if((pa=m_MapDoc.m_PolygonArray.GetAt(i))!=NULL)
{
m_MapDoc.m_PolygonArray.RemoveAt(i);
delete pa;
// ASSERT(m_MapDoc.m_PolygonArray.GetAt(i) ==NULL);
}
}
中程序占用的内存不减反增。不知是何原因,请指教。
for(i=0;i<=m_MapDoc.m_PolygonArray.GetUpperBound();i++)
{
if((pa=m_MapDoc.m_PolygonArray.GetAt(i))!=NULL)
{
m_MapDoc.m_PolygonArray.RemoveAt(i);
delete pa;
// ASSERT(m_MapDoc.m_PolygonArray.GetAt(i) ==NULL);
}
}
CAge* pa1;
CAge* pa2;array.Add( pa1 = new CAge( 21 ) ); // Element 0
array.Add( pa2 = new CAge( 40 ) ); // Element 1
ASSERT( array.GetSize() == 2 );
array.RemoveAll(); // Pointers removed but objects not deleted.
ASSERT( array.GetSize() == 0 );
delete pa1;
delete pa2; // Cleans up memory.
这是MSDN上的例子,RemoveAll只能删除指针,还是要用delete去释放内存阿