0xC0000374:堆已损坏 错误的解决

最近一个项目服务端程序,vs2013 c++ x64开发,调用了mysql库,自己的电脑上运行很顺畅稳定,在同事的测试机上运行起来后,客户端连接后就不明原因、没有报任何错误的中断、重启,进入调试模式后,出现以下提示:

0xC0000374:堆已损坏 错误的解决_第1张图片

由于该服务端程序能够运行起来并等待客户端连接,所以排除缺库的情况,遂逐句排查,发现是在调用了函数mysql_free_result 后进入了崩溃,在网上查了mysql_free_result的使用,有篇文章《mysql_free_result 如何优雅的执行》对我启发很大,文章地址:https://blog.csdn.net/sun_ashe/article/details/82191203 。

按照文章所说,mysql_free_result操作稍有不慎,就会造成内存问题,要不是泄漏,要不就是非法访问。在执行mysql_store_res之后,如果进行两次free,就会引起错误,程序中正是由于主程序执行了mysql_store_res后,调用的函数中又执行mysql_store_res并free,返回后主程序又free,---崩溃。正确匹配store-free后,错误再没有出现。

但是还有个问题:为什么我的电脑没有报错呢?

你可能感兴趣的:(mysql,编程基础)