C 構造体に関する宿題の問題がいくつかあります...誰かが助けてくれれば。わからないから。
作業コードにはこれらのビットが含まれています (方向を含む頭を持つヘビのゲームです):
game_t *game = …;
game->snake.head->direction = …;
snake_info(game->snake)
snake_destroy(&(game->snake));
プロトタイプ (どうやら変更できないようです):
void snake_info(snake_t const *snake);
void snake_destroy(snake_t *snake);
そして、私が構築しようとしている構造。
typedef struct game {
snake_t snake; // to match call to snake_destroy and direction assignation
// or
snake_t *snake; // to match call to snake_info
} game_t;
しかし、両方を同時に機能させることはできません。
編集:実際にはstruct
が呼び出されました。明らかな何かを見逃しているのでしょうか、それともそれらのプロトタイプ (または呼び出し) に問題がありますか?snake
game
編集2:
最初の解決策でのコンパイラ エラーsnake_t snake
( 内game
):
snake.c: In function ‘game_print’:
snake.c:244:5: erreur: incompatible type for argument 1 of ‘snake_info’
gamecore.c:20:6: note: expected ‘const struct snake_t *’ but argument is of type ‘snake_t’
2 番目のソリューション ̀ snake_t *snake` でのコンパイラ エラー:
snake.c: In function ‘game_destroy’:
snake.c:205:5: attention : passing argument 1 of ‘snake_destroy’ from incompatible pointer type
gamecore.c:54:6: note: expected ‘struct snake_t *’ but argument is of type ‘struct snake_t **’