首页 > 解决方案 > 传递 '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’ 

我在哪里失败?

谢谢

标签: cmatrixcompiler-errors

解决方案


的最后一个参数myFunc是类型

int matrix[][2],

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

 matrix[i][2]

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

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


推荐阅读