Re: 構造体のメンバの記憶域の順
Kusakabe Youichi <void@merope.pleiades.or.jp> writes:
> そういえばいまのCでは
> struct {
> int len;
> char a[];
> };
> みたいに配列の個数書かないのもOKなんだっけ?
OKです.もちろん最後のメンバだけ.
struct s1 {
int len;
char a[];
};
と同じ用途で,むかしは個数を書かなきゃいけなかったので,
struct s2 {
int len;
char a[1];
};
と書いたりしたと思いますが,上の2つの書き方でaのオフセットが同じになる
ことが保証されています.(sizeof(struct s1)とoffsetof(struct s1, a)と
offsetof(struct s2, a)は同じになる.)
前田敦司
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735