当我结束程序时,我发现像这样的“检测到 glibc”消息。 但是,我不知道这是错误或警告还是其他......有人可以解释这条消息的含义以及我必须做什么吗?
最佳答案
这意味着您的程序中存在堆损坏。您可能使用malloc
分配一些内存,但在实际边界之外写入,从而损坏了堆。当您调用free
时,glibc会检测到损坏并报告它(具体来说,下一个空闲 block 的大小将被覆盖)。
你绝对应该解决这个问题。 Valgrind对于追踪实际导致堆损坏的代码有很大帮助。
关于c - 我不知道C中的 'glibc detected',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10864931/