读书人

释放的时候为什么会出错?解决办法

发布时间: 2012-03-09 21:42:53 作者: rapoo

释放的时候为什么会出错??

CRectView::~CRectView()
{
for(int i=0;i <RECTAREA_HEIGHT+1;++i)
{
delete [] RectArea[i]; //RectArea已声明过是int **RectArea类型。
RectArea[i]=NULL;
}

delete []RectArea;//如果将其注释后,关闭程序时就不会报错了。
RectArea=NULL;

}

非常不理解,请问哪里出错了???

[解决办法]
delete [] RectArea[i];
改称delete RectArea[i];试试
[解决办法]
RectArea是怎么来的?
[解决办法]
一楼说的是不正确的解决方式.

首先分析 RectArea 的初始化过程,然后在调试中加 watch point 观察是否被意外修改过。
[解决办法]
RectArea已声明过是int **RectArea类型并不等价于二维数组,建议搂主贴上初始化
[解决办法]
关键要看你的

RectArea 是什么定义的
[解决办法]
for(int i=0;i <RECTAREA_HEIGHT+1;++i)
====
为什么是要+1: RECTAREA_HEIGHT+1
通常的用法是不加的,看看这里有没有问题?

读书人网 >C++

热点推荐