簡體   English   中英

malloc.c 3096 有什么問題

[英]what 's the problem in malloc.c 3096

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

我在運行使用 integer 3D 指針和普通 int 變量的 c 程序時遇到的錯誤

malloc沒有問題,錯誤在你自己的代碼中。

您很可能在之前分配的 memory 塊之前或之后覆蓋了 memory。 或者你釋放了一個塊然后還是寫了它。

也可能是您分配了太多 memory 而沒有釋放它,或者太少(malloc 不喜歡負數)。 通常最后兩個不會引起斷言,但每個平台都有自己的怪癖。

弄亂malloc頭的方法有很多....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM