c++ - Smallbin双链表损坏

C++ - Smallbin double linked list corrupted

本文关键字:链表 损坏 Smallbin c++      更新时间:2023-10-16

我需要创建一个双精度向量。问题是,如果有3个以上的值,我就不能这样做了。

我的代码:

std::vector <double> tmp {12, 2, 3, 24, 4, 6};

错误:

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

我以前从未见过这个错误。我知道这是关于"双重释放"的事情,但我不知道,为什么在向量创建过程中会发生这种情况。

你知道问题是什么,我该怎么解决它吗?

你的代码是正确的,它工作良好。可能是程序的其余部分包含错误。

错误"smallbin双链表损坏"发生时,glibc变量使用的内存被错误地从程序的用户部分修改。

检测此类问题的最佳工具是Valgrind,使用它吧!