我知道这很简单,但我似乎无法做到这一点。
我的功能是这样的:
int GefMain(int array[][5])
{
//do stuff
return 1;
}
在我的主要内容中:
int GefMain(int array[][5]);
int main(void)
{
int array[1800][5];
GefMain(array);
return 0;
}
我提到this有用的资源,但我仍然收到错误"warning: passing argument 1 of GefMain from incompatible pointer type."
我究竟做错了什么?
EDIT:
代码位于两个文件中,由编译器链接在一起。我没有使用 gcc。上面的代码正是我所拥有的,除了该函数在 main.c 中声明为“extern int”。感谢大家抽出宝贵的时间。
代码没问题。在单个文件中,这对我来说用 gcc 编译得很好。
int g(int arr[][5])
{
return 1;
}
int main()
{
int array[1800][5];
g(array);
return 0;
}
我的猜测是你是#include
ing 错误的文件——也许是一个有不同声明的文件GefMain
。或者也许您只是没有保存声明的文件GefMain
,所以它仍然有一个参数int [][3]
例如,这会导致警告。
我建议您发布完整的代码来重现问题(当然,在删除重现问题所需的所有内容之后)。但到那时,你很可能已经自己解决了这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)