コードに次の構造があります。
struct BlockDescriptor
{
struct BlockDescriptor * pNext;
bool _isFree;
};
そして、そのサイズは 4 + 1 = 5 (ポインターと1
の場合は 4 bool
) であると信じがちですが、何らかの理由でsizeof(struct BlockDescriptor)
8 が返されます。誰かが理由を教えてもらえますか?
5 が 4 の倍数に切り上げられるのはパッキングの問題のためですか (32 ビットがほとんどのコンピューターで最も快適であるため)、実際のサイズを使用するように強制する方法はありますか (それが実際に正しい場合)サイズ) ?