错误:' - >'的无效类型参数(有'Personaggio')

时间:2017-06-21 19:40:22

标签: c struct compiler-errors

我在创建一个用于在16x16矩阵上移动机器人的功能时遇到此问题,我想用Ladro的坐标Y减去Guardia的坐标x。

下面是代码:

`

    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)); //错误

请查看注释为错误的行。我搜索了很多,并尝试更换 - >通过。但没用.`

1 个答案:

答案 0 :(得分:0)

函数内部的变量不知道函数外部的变量。显而易见的问题似乎是您在函数外部初始化Personaggio Ladro。你的函数不知道Ladro是否存在,因为你没有在函数中初始化 这样的对象。