主题:[讨论]#damage:after normal block
cl6084710
[专家分:0] 发布于 2007-11-25 22:17:00
请各位高手指点~
回复列表 (共1个回复)
沙发
multicommodity [专家分:20] 发布于 2008-01-18 18:00:00
错误源头一,数组访问越界:
大家先看如下一段程序:
int* a = new int[5];
a[5] = 3; // 这儿访问越界了
delete[] a;
在delete[] a;这句代码处将会出现:DAMAGE:After normal block(#93)的错误。
错误源头二:
char* pBuffer = new char[2];
int v = 12345;
memcpy(pBuffer, &v, sizeof(v));
delete[] pBuffer;
正如代码所表示的,我的缓冲区pBuffer有且仅分配了2Bytes的空间,然面我却向它塞了4Bytes的值,显然这是不正确的,DEBUG一下,将出现:DAMAGE:After normal block(#94)的错误。
我也是犯了这个错误 这是我从网上查到的
楼主好好检查一下 看是不是用了没有分配过的内存
我来回复