使用しているヘッダーファイルは次のとおりです。
typedef struct room room;
struct room {
char name[21];
int num_doughnuts;
int num_milkshakes;
room* portal[4];
};
と私のコード:
struct room* create_room()
{
for(i = 0; i < num_room; i++)
{
room[i] = (struct room*)malloc(sizeof(room));
printf("input room details\n");
fgets(input, max_length, stdin);
sscanf(input, "%s %i %i", room_name, &dnuts, &mshakes);
strcpy(room[i].name, room_name); //assign name
room[i].num_doughnuts = dnuts; //assign doughnuts
room[i].num_milkshakes = mshakes; //assign milkshakes
}
return 0;
}
そして、create_room() が呼び出される前に、main 関数で room 構造体を宣言しました。
struct room room[num_room];
ユーザーが定義した部屋数の文字列と2つの整数を格納するためのユーザー入力を取得することになっています。
expected identifier or '('
これらの行について、次のようなエラーが表示され続けます。
room[i] = (struct room*)malloc(sizeof(room));
room[i].num_doughnuts = dnuts; //assign doughnuts
room[i].num_milkshakes = mshakes; //assign milkshakes
私も取得しています: 予期しないタイプ '部屋': 名前を割り当てようとすると式が期待されます:
strcpy(room[i].name, room_name); //assign name
宣言した方法に何か問題がありますが、何がわかりません。これらの問題のいくつかを見て、いくつかの異なるタイプの解決策を試しましたが、同様のエラーが発生し続けます。
誰でもこれに光を当てることができますか?私は本当に行き詰まっています!とても有難い!
PS は、これらのすべての部屋が作成された後、相互にリンクされたリストに保存され、ポータル [4] が他の部屋へのポインターを保存する必要がある場合に役立ちます。それが私の質問に関係があるかどうかはわかりませんが、追加情報が誰にも害を及ぼすことはありません!