我需要创建一个双打矢量。问题是,如果有超过3个值,我就不能这样做。
我的代码:
std::vector <double> tmp {12, 2, 3, 24, 4, 6};
错误:
malloc(): smallbin double linked list corrupted: 0x0000000000992400 ***
我之前从未见过这个错误。我知道它是关于&#34;双重释放&#34;,但我不知道,为什么这会在矢量创建过程中发生。
您知道吗,问题是什么以及我该如何解决?
答案 0 :(得分:2)
您的代码是正确的,它工作正常。 可能是程序的其余部分包含错误。
当glibc变量使用的内存从程序的用户部分错误地修改时,会发生错误“smallbin double linked list corrupted”。
检测此类问题的最佳工具是Valgrind,请使用它! 它真的有助于调试疯狂的程序行为。