Malloc.c 3096 中有什么问题

  • 本文关键字:问题 3096 Malloc malloc
  • 更新时间 :
  • 英文 :

> 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.

当我运行c程序时遇到的错误,该程序使用整数3D指针和普通int变量

malloc没有问题,错误在您自己的代码中。

很可能是在之前分配的内存块之前或之后覆盖内存。或者你释放了一个区块,然后无论如何都写信给它。

也有可能是您分配了太多内存而没有释放,或者太少(malloc不喜欢负数(。通常,后两个不会引起断言,但每个平台都有自己的怪癖。

有很多方法可以扰乱malloc的头脑。。。。

相关内容

  • 没有找到相关文章

最新更新