我试着用一个包装函数来分配21,128个字节,这个函数在内部调用malloc。
system bytes = 14618624
in use bytes = 13759424
Arena 1:
Arena 0:
system bytes = 14626816
in use bytes = 13759600
Arena 1:
system bytes = 135168
in use bytes = 3280
Arena 2:
system bytes = 135168
in use bytes = 13088
但我还是看到malloc失败了。可能的原因是什么?
*** Error in `./wr_acc': malloc(): memory corruption: 0x00007ff4747a2ff0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x82c86)[0x7ff48c9d5c86]
/lib64/libc.so.6(__libc_malloc+0x4c)[0x7ff48c9d884c]
./wr_acc[0xdf4c28]
请帮助我。我是一个初学者。
错误信息很清楚。
*** Error in `./wr_acc': malloc(): memory corruption: 0x00007ff4747a2ff0 ***
malloc()
检测到其附属结构中的无效状态,所以它放弃了分配内存的尝试,并中止了程序,以避免潜在的破坏性副作用。
私人数据 malloc()
用来跟踪已分配块和空闲块的代码可能已经被你的程序覆盖了,例如,在已分配块结束后或开始前写入。你可以把代码贴出来,看看是否有人能发现这样的问题。