function
{
    ......
    unsigned char *rgbdata = new unsigned char[304128];
    ......
    delete []rgbdata;
    ......
}
这段代码为什么执行delete操作时出错?

解决方案 »

  1.   

    你所给的代码部分本身并没有错,检查一下你代码的省略号部分是否释放过rgbdata或修改过它的值。
      

  2.   

    一种可能是你中间那段代码释放了这个数组,这个时候delete会出错;另外一种情况是你在dll中用,有可能出错。估计你是中间某个地方释放了,或者分配不成功。如niu_a所说
    if (rgbdata != NULL)
      delete []rgbdata;
      

  3.   

    function
    {
        unsigned char *rgbdata = new unsigned char[304128];
        if (rgbdata == NULL)
            AfxMessageBox("okok");
        else 
            delete []rgbdata;
    }这样写都会出错!邪门了
    而且我看了,确实分配成功了