这完全让我感到困惑。在我的班级声明中,我有两行:
std::multimap<int, int> commands;
std::multimap<std::string, std::string> config;
代码编译没有问题,但是当我运行它时,我收到以下错误:
*** glibc detected *** ./antares: free(): invalid pointer: 0xb5ac1b64 ***
看起来很简单,只不过和后面两个变量的处理方式无关。我删除了其余代码中对变量的所有引用 - 仍然崩溃。我注释掉了其中一行 - 任何一行,程序运行没有问题。错误怎么可能不与任何一个特定变量有关?我在假设 STL 中没有错误的情况下工作,但我已经没有关于我的代码如何可能做到这一点的想法。
这让我很困惑,所以我很感激你能提供的任何帮助。怀亚特
编辑:我并不是说 STL 有问题,那只是我有点油嘴滑舌。我知道错误在我的代码中,我想知道的是 - 声明未引用的变量会导致它崩溃可能有什么问题?为什么这会影响我的代码?
我的代码有几千行,所以不值得任何人花时间阅读它,我只是在寻找能指引我正确方向的人。