#include<stdio.h>
struct mystruct
{
char cc;
float abc;
};
union sample
{
int a;
float b;
char c;
double d;
struct mystruct s1;
};
int main()
{
union sample u1;
int k;
u1.s1.abc=5.5;
u1.s1.cc='a';
printf("\n%c %f\n",u1.s1.cc,u1.s1.abc);
k=sizeof(union sample);
printf("%d\n\n",k);
return 0;
}
演算子のサイズが返さ8
れます一度に複数の構造要素にアクセスできますが、sizeof
演算子は私が想定するプリミティブデータ型の最大サイズを返します。なぜこの動作なのですか?実際に割り当てられているサイズは8
?そして、sizeof
は間違った値を返していますか?または、実際に割り当てられたサイズは8
?では、構造はどのように収容されますか?malloc
を使用してユニオンの配列を割り当てるsizeof
場合、そのような場合に十分なスペースが割り当てられますか?詳しく説明してください。