HEAP: Free Heap block XXXX modified at XXXX after it was freed详解

来源:互联网 发布:有哪些数据开放平台 编辑:程序博客网 时间:2024/06/08 12:19

测试代码:


char* testP(char*pfuck)
{
static char chardd[123];
strcpy(chardd,pfuck);
delete pfuck;
return chardd;


}


char *p = new char[123];


testP(p);


*p = 'a'; //
野指针 


调试内存地址对比图:

(以下是调试的内存窗口)






解释一下:  0xfeeefeee 0xCDCDCDCD这个知道是什么意思吧,,, 


0xCDCDCDCD  就是未初使用时内存显示的数据

0xfeeefeee         就是已经释放后数据会这么显示 



ox11F80D0 内存上显示的唯一一个数就是61        61是多少啊,就是小写的a, 为什么是a啊,去查ascii表吧


对与野指针这种错误,程序不会立即报错,所以直接callstack查看到的范围可能就比较大了,最好结合内存窗口, 日志,dump等多重处理。





2 0
原创粉丝点击