可能的重复:
malloc.c:3074 错误? https://stackoverflow.com/questions/1097995/malloc-c3074-error
我在执行 C++ 代码时遇到这个奇怪的错误:
malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
Aborted
该程序运行良好,直到它从已执行的行捕获上述分段错误(SIGSEGV)。我用 gdb 发现了这一点。
由于写入无效的内存位置,某些内容已损坏堆。最可能的原因是在已分配对象的范围之外写入,或者在删除对象后写入该对象。
使用调试器很难追踪这些错误。最好的工具是内存检查器,例如valgrind http://valgrind.org.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)