无法在c中调用函数

时间:2016-02-06 15:20:37

标签: c

我试图通过以下方式调用函数: 在int main之前:

int matrixCheck(int matrix[][LEN] , int j , int i);

主要打电话:

flag =  matrixCheck(matrix[][LEN] , int j , int i);

功能本身:

int matrixCheck(int array[][LEN] , int j , int i)

我收到以下错误error: syntax error before ']' token(主要是来电)

在通话之前没有错误,因为它之前只有以下代码。

int matrix[][LEN] = {{16,2,3,13},{5,11,10,8},{9,7,6,12},{4,14,15,1}};
int i = 0, j = 0;
int flag = 0;

任何人都知道为什么会这样?

4 个答案:

答案 0 :(得分:1)

编译器说存在语法错误,因为存在语法错误。

调用matrixCheck的第一个参数应该是matrix,没有额外的[]和其他垃圾。

还应删除第二个和第三个参数之前的垃圾int

答案 1 :(得分:1)

电话应该只是:

flag =  matrixCheck( matrix, j, i ) ;

您不在函数调用中指定参数的数据类型或数组维度;仅在定义或声明中。

答案 2 :(得分:0)

我不确定这个函数是做什么的,所以我会让它打印出数组中第一个组的第一个值,然后它将打印j和i的值。

函数退出后,将打印flag的值。

我不确定您是否知道如何使用调试器,但如果不知道,那么至少使用printf语句打印出数字变量,以便了解它们的处理方式。看我的代码:

#include <stdio.h>
#define LEN 50

int matrixCheck(int array[][LEN] , int j , int i){
    printf("array[0][0]=%d,  i=%d, j=%d\n",array[0][0],i,j);
    return 1;
}

int main(){
    int matrix[][LEN] = {{16,2,3,13},{5,11,10,8},{9,7,6,12},{4,14,15,1}};
    int i = 17, j = 18;
    int flag = 0;
    flag =  matrixCheck(matrix,j,i);
    printf("flag=%d\n",flag);
    return 0;
}

答案 3 :(得分:-3)

我不知道该功能是做什么的,但您可以尝试使用与int array[][]相同的int **array - &gt;所以是二维数组的指针。