0

头文件.h

void myFunc(int, int, int, int, int [][2]);

定义

void myFunc(int a, int b, int c, int d, int matrix[][2]){
}

这就是我称之为“myFunc”的地方

for(int i = 0; i < 10; i++){
    myFunc(a, b, c, d, matrix[i][2]);
}

另外编译器给了我这个错误:

expected ‘int (*)[2]’ but argument is of type ‘int’ 

我在哪里失败?

谢谢

4

1 回答 1

1

的最后一个参数myFunc是类型

int matrix[][2],

这意味着“一个二维整数数组,其中数组有两列。” 另一方面,当您调用该函数时,您将作为此参数传递

 matrix[i][2]

这意味着“行i,列矩阵中的项目2。” 这是一个整数(它实际上超出了数组的范围 - 你明白为什么吗?)而不是二维矩阵。

解决此问题的具体方法将取决于其myFunc工作方式。也许你的意思是通过matrix而不是matrix[i][2]?或者您可能打算传入matrix[i],在这种情况下,最后一个参数应该具有类型int[]而不是int[][2].

于 2021-08-23T14:49:41.393 回答