2013-10-25 96 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