#include<stdio.h>
#include<string.h>
char getInput(char *x[50]);
main (){
char string[50];
getInput(&string);
}
char getInput(char *x[50]){
printf("What is the string?");
gets(*x);
}
我一直收到这些错误......
exer7.c:20:2:警告:从不兼容的指针类型[默认启用]传递'getInput'的参数1 getInput(安培;字符串); ^ exer7.c:5:6:注意:预期'char * '但参数类型为'char()[50]' char getInput(char * x [50]);
我一直在更改指针和&符号,但我真的不知道正确的指针类型,请帮助:(
顺便说一下,这只是一个代码片段,我还有许多其他用户声明的函数,我不需要在这里发布。答案 0 :(得分:1)
char *x[50]
声明x
为array of pointers.
&amp; string`属于指向数组的指针。两种类型都不兼容。
将您的功能声明更改为
char getInput(char x[50]);
并将其命名为
getInput(string);
答案 1 :(得分:1)
void getInput(char (*x)[50]);
int main (){
char string[50];
getInput(&string);
return 0;
}
答案 2 :(得分:0)
getInput(&string);
您不应该通过&
string
。只需将char数组的基址string
作为参数传递。
char getInput(char *x[50]);
这个正式的论点也是不正确的。这应该是指向char或50字节的char数组的指针。