2017-06-21 7 views
0

私は16x16行列でボットを動かすための関数を作成する際にこの問題があります。ラドロー。エラー:無効な型引数 ' - >'( 'Personaggio'を持っています)

Beloweコードである:

`

typedef struct{ 
    int nx; 
    int ny; 
    }Personaggio; 
Personaggio Ladro; 
Personaggio Guardia; 

void moveguardia(char scacchiera [][16], Personaggio *Guardia) 

    { 
      int movimento, GxMed, GyMed; 
      if(scacchiera[Guardia->nx-1][Guardia->ny]=='m'){ 
      movimento=rand()%4; 
      if(movimento==0){ 
       Guardia->nx=Guardia->nx+1; 
       scacchiera[Guardia->nx-1][Guardia->ny]=' '; 
       scacchiera[Guardia->nx][Guardia->ny]='G'; 
      } 
     else if(movimento==1){ 
       Guardia->nx=Guardia->nx-1; 
       scacchiera[Guardia->nx+1][Guardia->ny]=' '; 
       scacchiera[Guardia->nx][Guardia->ny]='G'; 
     } 
     else if(movimento==2){ 
       Guardia->ny=Guardia->ny-1; 
       scacchiera[Guardia->nx][Guardia->ny+1]=' '; 
       scacchiera[Guardia->nx][Guardia->ny]='G'; 
     } 
     else if(movimento==3){ 
       Guardia->ny=Guardia->ny+1; 
       scacchiera[Guardia->nx][Guardia->ny-1]=' '; 
       scacchiera[Guardia->nx][Guardia->ny]='G'; 
     } 
      } 
     GxMed=abs((Guardia->nx) - (Ladro->nx));//error 

エラーは、このラインGxMed = ABS((Guardia-> NX) - (Ladro-> NX))である; //エラー

エラーとしてコメントされた行を見てください。私はたくさんの検索をしており、また、 - >を置き換えようとしました。しかし役に立たない。

+0

'Ladro'はポインタではありません。 –

+0

もし ' - >'を '.'で置き換えれば、誤った結果が得られます。 –

+2

これは、ローカル変数とグローバル変数を同じ名前と異なる型で混在させた場合に起こります。 –

答えて

0

関数内の変数は、関数外の変数を知らない。明らかな問題は、あなたが機能の外にPersonaggio Ladroを初期化したことが原因と思われます。関数の内部にのようなオブジェクトを初期化しないので、関数はLadroの存在を知らない。

関連する問題