malloc() と free() は割り当てられたサイズとアドレスをどこに保存しますか?

malloc/free がメモリ領域のサイズを格納できる方法はたくさんあります。たとえば、malloc によって返される領域の直前に格納される場合があります。または、別のルックアップ テーブルに格納されている場合もあります。または、暗黙的に格納される場合もあります。一部の領域は、特定のサイズの割り当て用に予約されている場合があります。

Linux (glibc) の C ライブラリがどのようにこれを行うかを調べるには、http://ftp.gnu.org/gnu/glibc/ からソース コードを取得し、malloc/malloc.c を調べます。 ファイル。上部にいくつかのドキュメントがあり、Doug Lea による A Memory Allocator を参照しています。