c - 传递 'myFunc' 的参数 5 使指针从整数而不进行强制转换 [-Wint-conversion]
问题描述
头文件.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]
.
推荐阅读
- c - 为什么我应该(无效)返回 memset()?
- azure - 我如何知道应用服务已消耗 sp far RRS 提要的消耗(成本)
- ios - SwiftUI 中的 PreferredScreenEdgesDeferringSystemGestures
- python - 已分配值时出现属性错误
- apache-spark - 如何在 pyspark 中使用 groupBy、collect_list、arrays_zip 和一起爆炸来解决某些业务问题
- internet-explorer-11 - SPFx webpart 在 IE11 中不起作用 - 反映未定义
- macos - 在解压缩的 AppleScript 应用程序上返回错误值的路径
- vba - 在表单上创建 Cmd 以直接转到特定记录
- optimization - 分段线性拟合
- linux - BASH如何获取文件字符串中的第一个数字