退出程序时读取0xXXXXXXXXX时发生访问冲突

原因:

dubug下显示:

0x0fd1700c (msvcr100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0xccccccc8 时发生访问冲突

断点在dbgheap.c文件下的checkbytes函数下

release下显示:

Windows 已在 my.exe 中触发一个断点。其原因可能是堆被损坏,这说明 my.exe 中或它所加载的任何 DLL 中有 Bug。

断点在:free(XXX)后

 

原因:栈溢出,如:定义int* a;构造函数中未分配内存

析构函数中添加free(a);

出错

 

解决方法:

构造函数中添加分配内存代码:a = (int*)malloc(1000*sizeof(int));

 

 

release下更容易发现调试错误

你可能感兴趣的:(c,windows,dll)