C++ - 小型双向链表损坏

3
我是一位能翻译文本的助手。
我需要创建一个双精度浮点数向量。问题是,如果有超过3个值,我就无法这样做。
我的代码如下:
std::vector <double> tmp {12, 2, 3, 24, 4, 6};

错误:

malloc(): smallbin double linked list corrupted: 0x0000000000992400 ***

我以前从未见过这个错误。我知道它是关于“双重释放”的问题,但我不知道为什么在vector创建期间会发生这种情况。

你知道是什么问题,并且应该如何修复它吗?


损坏错误可能会出现在与其无关的代码上。我想错误在于您代码的另一部分,大约在调用malloc时的某个地方。有任何提示吗? - aslg
看看这些主题,它们应该会有所帮助:https://dev59.com/vWUp5IYBdhLWcg3w-Laz - Sid
1个回答

2

你的代码是正确的,它可以正常运行。也许程序的其他部分含有错误。

"smallbin double linked list corrupted" 错误发生时,是由于 glibc 变量使用的内存被程序用户部分不正确地修改导致的。

检测这类问题最好的工具是Valgrind,请使用它!它确实有助于调试疯狂的程序行为。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接