即使有足够数量的可用字节,Malloc 也无法分配字节

Malloc failed to allocate bytes even there is sufficient amount of bytes available

我尝试使用内部调用 malloc 的包装函数分配 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() 可能已被您的程序覆盖,例如写入超出已分配块末尾或在其开始之前。您可以 post 代码,看看是否有人能发现此类问题。