0

malloc/calloc/realloc/free 関数を書き直しています。今のところ、私はmallocを終了し、テストのために、次のような「無料」関数を書きます:

void free(void* ptr) {}

そして、さまざまなソフトウェアで機能をテストし、ls/firefox/man で動作します...

しかし、GIMPのようなソフトウェアを使用すると、次のことができます:

*** Error in `gimp': free(): invalid next size (normal): 0x0000000001d75e00 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x80996)[0x7f280d77e996]
/lib/x86_64-linux-gnu/libc.so.6(+0x82614)[0x7f280d780614]
/lib/x86_64-linux-gnu/libc.so.6(__libc_memalign+0x9a)[0x7f280d781e1a]
/lib/x86_64-linux-gnu/libc.so.6(posix_memalign+0x4c)[0x7f280d783a2c]

SO、何もしない無料でこの問題が発生する理由がわかりません。(私の無料の関数が呼び出され、「printf」でテストしました)

誰かがそれがどこから来たのか知っていますか?

読んでくれてありがとう

4

0 に答える 0