投稿者 tel | 2010年8月12日

構造体のサイズ

いまさらながら構造体をsizeofでサイズを求めたときに以下の場合で結果が違うことを知った。

#include <stdio.h>

struct Hoge {
  char a, b, c, d;
  char e;
};

struct Huga {
  int a;
  char b;
};

int main()
{
  printf("Hoge : %d\n", sizeof(Hoge));
  printf("Huga : %d\n", sizeof(Huga));
  return 0;
}

出力結果

Hoge : 5
Huga : 8

最初にcharで次にintとかの構造体だとパディングが入ることは頭に入ってたけどこういう場合でもパディングを考慮しないといけない。


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。