2013-10-25 139 views
-1
int check(int i,int j,char test); 

    int main(int argc, char *argv[]) 
{ 
    char mat[5][5]; 
    char *anahtar; 
    anahtar=(char*)malloc (length*sizeof(char)); 
    //i take length from user with scanf 

    int k=0; 
    if (check(i,j,anahtar[k])==1) 
    { 
     mat[i][j]=anahtar[k]; 
    } 

    int check(int i,int j,char test) 
    { 
     int a=0; 
     int b=0; 
     if (mat[a][b]==test) 
     { 
      return 1;         
     } 
     else 
     { 
      return 0; 
     } 
    } 

}c,在函數中傳遞char數組作爲參數?

它給出錯誤

undefined reference to `check'| 

anahtar []是一個char array.So爲什麼不能我通過anahtar [k]的參數中?

我已經有原型。問題不在於此。

+2

請問您能否以更易讀的方式編輯您的問題? – fvdalcin

+0

你似乎沒有在你的main函數之前定義函數原型。 然後,我甚至沒有看到你的主要方法開始的位置 – UnholySheep

+0

我放了原型,但我不想粘貼我的所有代碼,以便在閱讀 –

回答

0

你需要你使用它,或者 把這個事先

INT檢查之前聲明它(INT I,詮釋J,焦炭試驗);

1

問題是您的check函數在main之內。將它放在main之外。

也不要投malloc;

anahtar = malloc (length*sizeof(char)); 
+0

如果我把函數完全放在main之外,我應該把變量也放在裏面。外面的原型是不夠的? –

+0

和我放在外面,仍然錯誤相同。 –

+0

把它放在外面你必須管理'if(mat [a] [b] == test)'。 'mat [a] [b]'對'check'不可見。 – haccks