fj.comp.lang.cの記事<871xve8046.wl@anago2.mas.chi.its.hiroshima-cu.ac.jp>で
        fujii@chi.its.hiroshima-cu.ac.jpさんは書きました。
> 構造体のメンバの記憶域は並べられた順に割り当てらることとなっていますが、
> これには何か理由がありますか。

struct foo {
  int a;
  int b;
  int c;
  char s[1];
};

のように構造体を宣言しておいて、任意の長さの領域を
malloc()してからstruct foo *にキャストして使うなん
てことをむかしのプログラムはよくやってました。つま
りsに任意の長さの領域を割り当てたいからです。

処理系がメンバーの割り当て順序を自由に変更してよい
ことになったら、この手のプログラムは動かなくなる可
能性がありますね。
-- 
太田純(Junn Ohta) (株)リコー/新横浜事業所
ohta@sdg.mdd.ricoh.co.jp