作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要创建一个 double vector 。问题是,如果有超过 3 个值,我将无法执行此操作。
我的代码:
std::vector <double> tmp {12, 2, 3, 24, 4, 6};
错误:
malloc(): smallbin double linked list corrupted: 0x0000000000992400 ***
我以前从未见过这种错误。我知道这是关于“双重释放”的事情,但我不知道为什么在 vector 创建过程中会发生这种情况。
您知道问题出在哪里吗?我该如何解决?
最佳答案
您的代码是正确的,它工作正常。可能是程序的其余部分包含错误。
当 glibc 变量使用的内存从程序的用户部分被错误地修改时,会发生错误“smallbin 双链表已损坏”。
检测此类问题的最佳工具是 Valgrind , 用它!它确实有助于调试疯狂的程序行为。
关于C++ - Smallbin 双链表损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32934853/
我需要创建一个 double vector 。问题是,如果有超过 3 个值,我将无法执行此操作。 我的代码: std::vector tmp {12, 2, 3, 24, 4, 6}; 错误: ma
我试图在一个大循环中重复运行一个函数,但在 2 或 3 次迭代后出现错误,但如果我从它给出错误的点开始,它工作正常但在 3 4 次迭代后再次停止。可能是内存问题。由于函数非常大,我不确定到底哪里有内存
此代码在运行时在 else 中生成错误: non exists *** Error in `./a.out': malloc(): smallbin double linked list corrup
我是一名优秀的程序员,十分优秀!