gpt4 book ai didi

c - 运行代码时出错 - 从整数生成指针而不进行强制转换

转载 作者:行者123 更新时间:2023-11-30 15:01:12 25 4
gpt4 key购买 nike

我正在尝试运行我的代码,但出现 5 个错误,而且它们都是同一类型。第一个是:

note: expected 'int (*)[3]' but argument is of type 'int'

例如,在我的代码的这一部分中(它指出了您在此处看到单词 HERE 的行

HERE-> int isNeighbourClose(int mat[N][M], int i, int j, int a, int b){

int m;

m=calcDistance(mat[i][j], mat[a][b]);
if(m<=1)
{
return 1;
}
return 0;
}

另一个是:

error: passing argument 1 of 'isNeighbourClose' makes pointer from integer without a cast

例如,在我的代码的这一部分中

int isCellExtreme(int mat[N][M], int i, int j){

int a, b;
int m;

for(a=-1;a<=1;a++)
{
if((i+a>=0) && (i+a<=N))
{
for(b=-1;b<=1;b++)
{
if((j+b>=0) && (j+b<=M))
{
if((a!=0)||(b!=0))
{
HERE-> m=isNeighbourClose(mat[N][M], i, j, i+a, j+b);
if(m)
{
return 0;
}
}
}
}
}
}
return 1;
}

我检查了好几次了,还是找不到问题出在哪里。知道我哪里错了吗?

提前致谢。

最佳答案

当您将 mat[N][M] 传递给 isNeighbourClose 时,您并没有像您想象的那样传递二维数组。您将传入 matNM 的单个元素。

该函数需要一个二维数组,因此传递整个数组:

m=isNeighbourClose(mat, i, j, i+a, j+b);

编辑:

当您有如下声明时:

int mat[N][M];

您要指定数组的数据类型和(在本例中)维度,即“mat 是一个由 N x M 元素组成的数组”。这与上面提到的使用 mat表达式不同。

关于c - 运行代码时出错 - 从整数生成指针而不进行强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41603889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com