c++ _pFirstBlock == pHead

今天写程序时碰到了这个异常,导致调试的程序卡死。在网上找了很久答案,都没解决。大致判定是对象被多次析构,但又确认程序逻辑没有问题。

后来参考了 http://www.cnblogs.com/qintangtao/p/4795074.html 这篇帖子,其中有一句话给了我启发:

C++的STL是单线程的,我在函数内部使用了vector,这个函数在一个多线程的环境里,大概就是这个错误产生的原因。

因为我的解决方案包含多个模块的,main函数所在的模块运行库 为/MDd,但我没有检查所调用的其它模块是否也是这个运行库了。然后果然发现有一个模块是 /MTd的,修改后程序运行正常了。白耽误了一天时间。

原文地址:https://www.cnblogs.com/winstonet/p/10731838.html