传递‘myFunc’的参数 5 使指针来自整数而不进行强制转换 [-Wint-conversion]

passing argument 5 of ‘myFunc’ makes pointer from integer without a cast [-Wint-conversion]

header.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’ 

我哪里失败了?

谢谢

myFunc 的最后一个参数是

类型
int matrix[][2],

意思是“一个二维整数数组,该数组有两列。”另一方面,当你调用函数时,你传递的是这个参数

 matrix[i][2]

表示“矩阵中行 i、列 2 的项目。”这是一个整数(它实际上超出了数组的范围 - 你知道为什么吗?)而不是二维矩阵。

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