错误原因:访问越界。
错误源头一:
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)的错误。
本文详细解析了访问越界错误的两种常见源头,并提供了相应的解决方案,包括使用合适的数据结构和内存管理策略来避免此类错误。
1139

被折叠的 条评论
为什么被折叠?



