以下代码执行异常:
int main()
{
char *p = 0;
p = (char*)malloc(0);
*p = 0;
free(p);
return 0;
}
分配长度为0的内存是成功的,但有效内存长度为0,对它进行写,自然越界了,导致堆栈被破坏,错误提示为
DAMAGE: after normal block。只要看到这个异常,大致可以确认为是内存越界写了。
以下代码执行异常:
int main()
{
char *p = 0;
p = (char*)malloc(0);
*p = 0;
free(p);
return 0;
}
分配长度为0的内存是成功的,但有效内存长度为0,对它进行写,自然越界了,导致堆栈被破坏,错误提示为
DAMAGE: after normal block。只要看到这个异常,大致可以确认为是内存越界写了。