gpt4 book ai didi

c++ - c++中的malloc错误

转载 作者:行者123 更新时间:2023-11-30 02:11:07 26 4
gpt4 key购买 nike

您好,当我尝试执行我的程序 (c++) 时,出现以下错误:

a.out: 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

当我使用 cout 跟踪我的程序时,我发现这是因为以下行

BNode* newNode=new BNode();

如果我删除这一行,我就不会收到错误。

任何人都可以在这方面提供帮助......

最佳答案

显示的代码行大体上没问题。堆之前可能已损坏。我会使用像 valgrind 这样的内存检查器找出位置。

如果没有内存检查工具,您只需要认真查看您的代码并找出错误。

有时二分搜索策略会有所帮助。故意停用部分代码并缩小范围。不要被像您发布的行这样的误报所愚弄。

另一种选择是切换到具有自动内存管理的编程语言。

关于c++ - c++中的malloc错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3866447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com