2016-04-07 3 views
-3

私の問題はinitialisePlayer(で)常に作るプログラムは、私はそれがC - structポインタを渡すとプログラムが終了しますか?</p> <pre><code>initialisePlayer(&player, &pos, direction); </code></pre> <p>し、それのためにメモリを割り当てる方法:へ

+0

画像としてテキストを投稿しないでください! – Olaf

+0

そして 'Player'構造体のためにどこにメモリを割り当てますか?あなたが持っているように見えるのは、ヌルポインタだけです。 –

+0

あなたはプレーヤーのためにスペースを割り当てる必要があります – Iancovici

答えて

0

あなたは初期化関数へのプレイヤーのアドレスとしてプレイヤーを渡す必要があり、実行時にクラッシュします初期化:

void initialisePlayer(Player **player, Position * position, Direction direction); 
{ 
    Player *p= malloc(sizeof(Player)); 
    p->position.x = position->x; 
    p->position.y = position->y; 
    p->direction = direction; 
    p->moves = 0; 
    *player= p; 
} 
+0

次にdisplayBoard(..)関数に 'player'を渡す方法は?ありがとうございました! –

+0

今のように。プレイヤーのみが初期化されました! –

+0

ああ、今私のために働く、ありがとう! –

関連する問題

 関連する問題