我想将arr2
复制到arr
并将arr
作为函数参数传递
void func(char * array)
{}
int main(void)
{
int a;
char arr[6][50];
char arr2[][50]={"qweeeaa","bbbb","ffaa","eeaa","aaaa","ffaa"};
for(a=0; a<6;a++)
{
strcpy(arr[a], arr2[a]);
}
func(arr);
return 0;
}
但我不能将arr
作为函数参数传递。我得到了
[Warning] passing argument 1 of 'func' from incompatible pointer type [enabled by default]
[Note] expected 'char *' but argument is of type 'char (*)[50]'
我正在使用MinGW GCC 4.8.1
答案 0 :(得分:4)
您传递的类型和函数期望的类型不匹配。更改函数以接收指向数组的指针:
void func(char (*array)[50])
{
}
其他问题:
1)您还没有为func()
声明原型。在C99之前的模式下,编译器会假设函数返回int
,这会导致问题。
在C99和C11中,缺少原型会使您的代码无效。因此,要么将原型声明在源文件的顶部,要么将函数移到main()
上方。
2)包括适当的标题(<stdio.h>
用于printf等)。