我定义了一个CArray<ClassA*, ClassA*>,这样,我每次都new一个ClassA的指针并加进这个链表,可是最后我用RemoveAll()释放后仍释放我有内存泄漏,双击指向当初new的那个位置,我自己用循环取出每个指针,delete,结果刚删除第一个就报错,非法异常,请问这个问题该如何解决?

解决方案 »

  1.   

    打错了,就是RemoveAll()后仍提示有内存泄漏,如何解决这个内存泄漏问题?
      

  2.   

    for (i=myArray.GetUpperBound() ;i >= 0;i--)
    {
       CMyClass* pObj = myArray.GetAt(i);
       delete pObj;
    }
      

  3.   

    为什么我delete的时候会抛出异常错误,不允许我删除?
      

  4.   

    for(i = m_aObjects.GetSize()-1; i >= 0; i--)
    { m_usrCurrentObject = m_aObjects.GetAt(i);
    delete m_usrCurrentObject;
    m_aObjects.RemoveAt(i);
    m_usrCurrentObject=NULL;  

    }
    代码写成类似的形式
    delete抛出异常错误是不是你的指针指的不对
      

  5.   

    我碰到了同样的问题,只不过我用的是vector ,希望高手可以回答!!
      

  6.   

    我也遇到过,我用的是CPtrList,也是在delete的地方出错,郁闷了好长时间,后来不知道又怎么好了,可能也没有好:(
    不果在CPteList中,remove后并没于释放空间,空间的释放得remove后再delete
      

  7.   

    Remove只是从连表中删除该节点,并不删除该节点变量的内存,所以需要你再次delete.
      

  8.   

    while (myArray.GetTail())
        delete myArray.GetTail();