传递‘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]
.
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]
.