私がやりたいのは、構造体のインスタンスを初期化することです。構造体はここで定義されます:
typedef struct Rectangle
{
tName Name; /* name of the rectangle */
struct Rectangle * binSon[2];
int Center[2];
int Length[2]; /* distance to the boarder of the rectangle */
int Label;
}Rectangle;
そして、私がそれを初期化した方法は以下のようです:
Rectangle * binSon[2];
binSon[0] = NULL;
binSon[1] = NULL;
int Center[2];
int Length[2];
Center[0] = 0;
Center[1] = 0;
Length[0] = 5;
Length[1] = 5;
Rectangle world = {"World", binSon, Center, Length, 0};
最後の行で、プログラムをコンパイルすると、次の警告が報告されます。
mx_cif_ds_manager.c:52:2: warning: initialization makes integer from pointer without a cast [enabled by default]
mx_cif_ds_manager.c:52:2: warning: (near initialization for 'world.Name[0]') [enabled by default]
mx_cif_ds_manager.c:52:2: warning: initialization makes integer from pointer without a cast [enabled by default]
mx_cif_ds_manager.c:52:2: warning: (near initialization for 'world.Name[1]') [enabled by default]
mx_cif_ds_manager.c:52:2: warning: initialization makes integer from pointer without a cast [enabled by default]
mx_cif_ds_manager.c:52:2: warning: (near initialization for 'world.Name[2]') [enabled by default]
mx_cif_ds_manager.c:52:2: warning: initialization makes integer from pointer without a cast [enabled by default]
mx_cif_ds_manager.c:52:2: warning: (near initialization for 'world.Name[3]') [enabled by default]
このプログラムの何が問題になっているのかわからず、このコードを改善するのに役立つアイデアや提案があるかどうか疑問に思っています。構造体を初期化するためのより一般的な方法は何ですか?
ありがとうございました
======更新======
ご協力いただきありがとうございますが、変数を使用して構造体を初期化する場合はどうなりますか。この場合、メモリスペースをmallocする必要がありますか?
tNameの定義はここにあります
typedef char tName[MAX_NAME_LEN + 1];