首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-01-13 
CObList清空的时候出错在执行下面一段的时候经常出错.导致程序退出.注掉这段代码就正常了.请大家帮我看一

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();

热点排行