gpt4 book ai didi

调用 free() 时损坏的未排序 block

转载 作者:太空狗 更新时间:2023-10-29 16:58:41 24 4
gpt4 key购买 nike

*** glibc detected *** ./a.out: free(): corrupted unsorted chunks: 0x00000000007646b0 ***
*** glibc detected *** ./a.out: malloc(): memory corruption: 0x00000000007635a0 ***

我遇到了上述错误。但我确定释放后我不会使用内存。为什么会出现上述错误?

最佳答案

所有堆,都在其内部存储某些类型的元数据。当你做一个malloc或者free的时候,heap往往会在heap上执行一些记账的功能。如果它在元数据中检测到一些完全出乎意料的东西,它通常会崩溃。

正常的堆操作不太可能导致此类问题,因此您的程序很可能是原因。由于您的程序可以访问进程中的所有内存,包括堆元数据,您的程序可能不小心覆盖了一些元数据。

一个可能的原因是写入超出分配的缓冲区的末尾。这种写入很可能会被允许,并且极有可能破坏堆元数据。当堆检测到这种情况时,您的程序通常会中止。

关于调用 free() 时损坏的未排序 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25767566/

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