私はmallocの実装に関するプレゼンテーションを読んでいましたが、スライド7では、スペースを節約するために、リージョンのサイズと可用性を1つの単語に保存することを提案しています。別の方法は、2つのワードを使用することです。これは、可用性ビットが0または1である必要があるだけなので、無駄です。
これは与えられた説明です:
- ブロックが整列している場合、下位アドレスビットは常に0です。
- なぜalways-0ビットを格納するのですか?
- 割り当て/解放フラグとして使用してください!サイズワードを読み取るときは、このビットをマスクする必要があります
http://courses.engr.illinois.edu/cs241/sp2012/lectures/09-malloc.pdf
しかし、これがどのように機能し、Cでどのように実装できるのか、私は本当に理解していません。サイズ整数の1ビットが常に0であるのはなぜですか?