mallocはなぜ要求以上のメモリを確保するのか?

Why malloc always does more than I asked for?

mallocはなぜ要求以上のメモリを確保するのか?

C言語のmalloc(13)が実際には13バイト以上のメモリを確保していることをご存知ですか?この記事では、アロケータの内部構造をゼロから実装しながら、ヘッダーやパディング、アライメント、内部フラグメンテーションといった概念を解説します。さらに、free()を機能させるためのバックポインタやフリーリスト、スプリッティング、コアレッシングといった高度なテクニックも、実際のコードとともに紹介します。メモリ管理の奥深さを、手を動かしながら学べる内容です。

メタデータと実際のオブジェクトの間にあるパディングバイトは、割り当ての全期間にわたってただそこにあり、誰にも使われず、誰にも触れられない。それが内部フラグメンテーションだ。

この日のほかの記事

2026-07-23