union
を使用すると、確かに異なるデータ型の要素を含む配列を持つことができます。非同種配列のメモリ割り当てはどのように機能しますか?
struct elements {
int s;
union {
int ival;
float fval;
char *pval;
} element;
};
struct darray {
struct elements items[100];
};
今、私たちは、異なるデータ型の要素を含むことができる配列を宣言することができます。組合の唯一の単一のメンバーは、単一の時点で存在することができますが、:私を悩まれ
struct darray a;
何我々はすでに100要素を含む配列を持っています。これらの要素は初期化されていませんが、ここでメモリを割り当てるべきではありませんか?
どのようにメモリ割り当てがそのような配列で機能しますか?
「あなたは確かに異なるタイプの要素を含む配列を持つことができます。それは間違っている。同種の配列の配列しか持てません。同種の型の配列のみを表示します。型は 'struct elements'です。これは3つの異なる型の' int'と 'union'を含む型ですが、' struct elements'は常に同じサイズです。 –