第一次使用。
COBList dataValues = new CObList();
有一个自己的类CGraphDataSet。
下面是插入代码:
CGraphDataSet *dataSet = new CGraphDataSet();
dataSet->SetXPosition(xValue);
dataSet->SetYValue(yValue);
dataValues->AddTail(dataSet);但是在我清空该list的时候老是出错,求救。
POSITION pos;
CGraphDataSet *dataSet;pos = dataValues->GetHeadPosition();
while(pos != NULL)
{
dataSet = (CGraphDataSet*)dataValues->GetAt(pos);
dataValues->RemoveAt(pos); delete dataSet; //此处delete总是出错
dataValues->GetNext(pos);
}
dataValues->RemoveAll();谢谢了。

解决方案 »

  1.   

    把“dataValues->RemoveAt(pos);”这句去掉。
      

  2.   


    // 类似这样的
    CObList list;

    struct CAge : public CObject
    {
    CAge(int n)
    {
    a = n;
    }
    int a;
    };

    list.AddHead(new CAge(21));
    list.AddHead(new CAge(40));
    list.AddHead(new CAge(45));
    list.AddHead(new CAge(68)); POSITION pos = list.GetHeadPosition(); CObject* pTmp = NULL;
    while(NULL != pos)
    {
    pTmp = list.GetNext(pos);
    delete pTmp;
    }
    list.RemoveAll();