私は現在、来週の月曜日に行われるテストの模擬試験を行っていますが、私を混乱させる何かに出くわしました!
私は次の構造体を持っています:
struct shape2d {
float x;
float y;
};
struct shape3d {
struct shape2d base;
float z;
};
struct shape {
int dimensions;
char *name;
union {
struct shape2d s1;
struct shape3d s2;
} description;
};
typedef struct shape Shape;
次のシグネチャを持つ形状を「作成」する関数を作成する必要があります。
Shape *createShape3D(float x, float y, float z, char *name);
構造体の結合を扱っているため、必要なすべてのフィールドを初期化する方法がよくわかりません!
これが私がこれまでに持っているものです:
Shape *createShape3D(float x, float y, float z, char *name) {
Shape *s = (Shape *) malloc(sizeof(Shape));
s->dimensions = 3;
s->name = "Name...";
// How can I initialize s2?
return s;
}
どんな助けでも感謝します!