Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误不兼容指针类型? #包括 #包括 char getInput(char*x[50]); 主要(){ 字符串[50]; getInput(&string); } char getInput(char*x[50]){ printf(“字符串是什么?”); 获取(*x); }_C_Pointers - Fatal编程技术网

错误不兼容指针类型? #包括 #包括 char getInput(char*x[50]); 主要(){ 字符串[50]; getInput(&string); } char getInput(char*x[50]){ printf(“字符串是什么?”); 获取(*x); }

错误不兼容指针类型? #包括 #包括 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`

我一直在犯这些错误

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`是指向数组的指针类型。这两种类型都不兼容

将函数声明更改为

#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;
}