出现这个错误了,说明运行的程序是一个 DEBUG 版本的程序。
这个错误信息来自于 微软的内存防泄漏检测。因为 DEBUG 版本的 内存分配和释放函数其实微软进行了一次封装,会在释放时检查这块内存有没有被泄露。
具体的例子:
void* p_void=malloc(strlen(str));
memset(p_void,0,strlen(str)+1);
free(p_void);
DEBUG版本 free这里将会发生 Debug Error HEAD CORRUPTION DETECTED 异常,这表示,申请了 strlen(str) 这么大的内存 却在 memset中使用了 strlen(str)+1,
内存泄漏了。