2017-06-21 40 views
0

我有這個問題,同時創建一個移動一個16x16矩陣機器人的功能,我想減去瓜迪亞的座標x座標Y ladro。錯誤:無效類型參數的' - >'(有'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

如果你用'.'替換' - >',你會得到哪個errort。 –

+2

這就是當你用相同名稱和不同類型混合局部和全局變量時發生的情況。 –

回答

0

函數內部的變量不知道函數外部的變量。這個明顯的問題似乎是你在函數之外初始化了Personaggio Ladro。你的函數不知道Ladro是否存在,因爲你沒有初始化這個對象裏面的這個函數。

相關問題