【问题标题】:C++ - Smallbin double linked list corruptedC++ - Smallbin 双链表损坏
【发布时间】:2016-01-01 07:09:18
【问题描述】:

我需要创建一个双打向量。问题是,如果有超过 3 个值,我不能这样做。

我的代码:

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

错误:

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

我以前从未见过此错误。我知道这与“双重释放”有关,但我不知道为什么会在矢量创建过程中发生这种情况。

你知道,有什么问题吗?我应该如何解决?

【问题讨论】:

  • 损坏错误可能会跳到与它无关的代码上。我会说错误出在代码的另一部分,在调用 malloc 的某个地方。敲响铃铛?
  • 看看这些主题,它们应该会帮助stackoverflow.com/questions/14897157/…

标签: c++ vector malloc stdvector


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多