很奇怪。
我用debug老是在删除对象的那个语句上出错
当是用调试就没问题
我用的是VC6的环境以前也有遇到这个问题,没多大注意

解决方案 »

  1.   

    CMatrix::~CMatrix()
    {
    int i;
    for(i=0;i<low;i++)
    delete m_pBlockMatrix[i];
    delete m_pBlockMatrix;
    for(i=0;i<low;i++)
    delete m_pValue[i];
    delete m_pValue;
    }
      

  2.   

    for(i =0;i<low;i++){
    if (m_pValue[i] !=  NULL)
    delete m_pValue[i];}
    delete [] m_pValue;
      

  3.   

    是不是指针没有进行初始化!并没有New出来一块内块,却要删除它!或是重复删除了!
      

  4.   

    在debug下可以,在relase下不行是不是这个意思哟。
    这种情况在C/C++中太常见了。这是由于在debug下运行没有relase下快,没有作优化,而在release中作了优化。对于那些写得不严格的代码常出现问题。这些问题一般都是对象,或指针出错引起的,因些应在删除操作之前加一个判断的。
      

  5.   

    不是i不自加大问题我在
    delete m_pBlockMatrix[i]; 设置断点
    调试,然后单步执行。程序没下调,如果再单步就是再次执行这条语句,也就是一个地方连续释放了两次出错;
    怎么后不往下跳执行呢天大的奇怪;改下问题的描述是
    组建的就一点问题也没有
      

  6.   

    [email protected]发过来我看看。
      

  7.   


    主要可能,没有看见检查 low的值,越限了
      

  8.   

    原来是释放语句错了,
    释放数据是 delete[]
    呵呵
    谢谢大家