2014-03-01 50 views
0

我得到的错误传递函数:从兼容的指针类型错误与不兼容的指针类型

【警告】通过arg的`1(我的功能)”

我试图让我的函数来读取3件事情。我已经宣布了我的无效功能。我已经在我的功能中创建了char* board,char* vehicle,char* distance

它是INT主要()

moveCar(&board, &vehicle, &distance); 

它不能正常运行我的程序。我能做些什么才能使它工作顺利?

更新:

因为你们中的一些人想看看我的功能。这里是。

void moveCar(char* board[], char* vehicle, char* direction) 
{ 
    int i; 
    for (i = 0; i < size; i++) 
    { 
     if(board[i] = vehicle) 
     { 
        if(*direction = 'r') 
        { 
          if(*board[i + 1] = '.') 
          { 
           swap(board, (&i), (&i + 1)); 
          } 
        } 
        else if (*direction = 'l') 
        { 
          if(*board[i - 1] = '.') 
          { 
           swap(board, (&i), (&i - 1)); 
          } 
        } 
        else if (*direction = 'd') 
        { 
          if(*board[i + 8] = '.') 
          { 
           swap(board, (&i), (&i + 8)); 
          } 
        } 
        else if(*direction = 'u') 
        { 
          if(*board[i - 8] = '.') 
          { 
           swap(board, (&i), (&i - 8)); 
          } 
        } 
     } 
    } 
} 
+5

我们至少应该看到函数声明和参数声明 – Jack

+0

表现出更多的代码:理想情况下,你的函数定义和它被调用的地方。 – Ashalynd

+0

除非'my_function'实际上是一个函数指针(并且我猜测它不是),否则它不应该放在括号中。 – abligh

回答

0

根据你的函数的定义和变量

char* board; 
char* vehicle; 
char* distance; 

void moveCar(char* board[], char* vehicle, char* direction) { ... } 

你应该叫moveCar()作为

moveCar(&board, vehicle, distance); 
+0

是的,但这并不能解释引用的错误消息中的'1'。 – alk

+0

@alk这可能不是真正的错误信息。 –

+0

@leeduhem我重新输入moveCar()和我得到的错误是:[Warning]从不兼容的指针类型传递'moveCar'的arg 1 [Warning]传递'moveCar'的参数2使得指针从整数[Warning]传递参数3 'moveCar'使整形指针无需转换 – Cam9191