读书人

CObList清空的时候出错解决方法

发布时间: 2012-01-13 22:43:30 作者: rapoo

CObList清空的时候出错
在执行下面一段的时候经常出错. 导致程序退出.注掉这段代码就正常了.
请大家帮我看一下哪里写错了.解决之后立即给分.

POSITION pos;
CObList list; //list里面存了几个我自己定义的对象(CMyClass)
for(int x=0;x <list.GetCount();x++)
{

pos = list.FindIndex(x);
CMyClass *temp;= (CMyClass *)list.GetAt(pos);

ASSERT(NULL != temp);
if(NULL != temp)
{
delete temp;
//temp = NULL;
}

}
list.RemoveAll();

[解决办法]
ASSERT(NULL != temp); //这句去掉

if(NULL != temp)
{
delete temp;
list.RemoveAt( pos ); //这里加一句
//temp = NULL;
}



[解决办法]
虽然这几行代码写得不规范,但看起来问题并不出在这几行代码上。
[解决办法]
CMyClass *temp = (CMyClass *)list.GetAt(pos);

[解决办法]
这么试试也行,上面那个回复有问题。
POSITION pos;
CObList list;
pos = list.GetHeadPosition();

while (pos != NULL)
{
CMyClass *temp;= (CMyClass *)list.GetAt(pos);
list.RemoveAt( pos );
delete temp;
list.GetNext(pos);
}
list.RemoveAll();
[解决办法]
这么简单的事情要这么复杂吗?????
一行搞定
while(!list.IsEmpty())delete list.RemoveHead();

读书人网 >VC/MFC

热点推荐