2014-03-01 42 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