错误不兼容指针类型? #包括 #包括 char getInput(char*x[50]); 主要(){ 字符串[50]; getInput(&string); } char getInput(char*x[50]){ printf(“字符串是什么?”); 获取(*x); }
我一直在犯这些错误 exer7.c:20:2:警告:从不兼容的指针类型传递'getInput'的参数1[默认启用] getInput(&string); ^ exer7.c:5:6:注意:应为“char*”,但参数的类型为“char()[50]” char getInput(char*x[50])强> 我一直在更改指针和符号,但我真的不知道正确的指针类型,请帮助:(错误不兼容指针类型? #包括 #包括 char getInput(char*x[50]); 主要(){ 字符串[50]; getInput(&string); } char getInput(char*x[50]){ printf(“字符串是什么?”); 获取(*x); },c,pointers,C,Pointers,我一直在犯这些错误 exer7.c:20:2:警告:从不兼容的指针类型传递'getInput'的参数1[默认启用] getInput(&string); ^ exer7.c:5:6:注意:应为“char*”,但参数的类型为“char()[50]” char getInput(char*x[50]) 我一直在更改指针和符号,但我真的不知道正确的指针类型,请帮助:( 顺便说一句,这只是一个代码片段,我还有许多其他用户声明的函数不需要在这里发布。char*x[50]将x声明为指针数组。&string`
顺便说一句,这只是一个代码片段,我还有许多其他用户声明的函数不需要在这里发布。
char*x[50]
将x
声明为指针数组。
&string`是指向数组的指针类型。这两种类型都不兼容
将函数声明更改为
#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);
}
并称之为
char getInput(char x[50]);
getInput(&string);
您不应该传递字符串的&
。只需要将字符数组的基址字符串
作为参数传递
char getInput(char*x[50]);
这个形式参数也不正确。它应该是指向char的指针或50字节的char数组。ahh所以你不必像使用int和float那样使用指针来自动更新值……谢谢:)事实上,在大多数情况下,数组名在传递给函数时会转换为指向其第一个元素的指针。
getInput(string);
void getInput(char (*x)[50]);
int main (){
char string[50];
getInput(&string);
return 0;
}