m_ptrarray 是CPtrArray的成员变量
在此之前建了一个CSaveSeq的类
一般一个new对应一个delete
请问我下面的程序new过后该怎样释放啊?
我注释掉的那样释放调试会出问题

for (int i = 0; i < seq->total; i++)
{
CvSURFDescriptor* des = (CvSURFDescriptor*)cvGetSeqElem( seq, i );
CSaveSeq *pSaveSeq = new CSaveSeq(des->x, des->y);
m_ptrarray.Add(pSaveSeq);
// delete[] pSaveSeq;
}

解决方案 »

  1.   

    m_ptrarray 是CPtrArray的成员变量
    ----------------------------------
    是CPtrArray类的对象,不是成员。for (int i = 0; i < seq->total; i++)
    {
    CvSURFDescriptor* des = (CvSURFDescriptor*)cvGetSeqElem( seq, i );//这行和这个问题无关,只是new CSaveSeq类用的参数
    CSaveSeq *pSaveSeq = new CSaveSeq(des->x, des->y);
    m_ptrarray.Add(pSaveSeq);
    // delete[] pSaveSeq;
    }
    这个创建没什么问题释放的时候:
    for (int i = 0; i < seq->total; i++)
    {
    CSaveSeq *pSaveSeq = (CSaveSeq *)m_ptrarray.GetAt(i);
    delete pSaveSeq;
    }
    m_ptrarray.RemoveAll();