c语言中的错误函数返回
我需要从函数中接收字符*,但我不明白是什么错了c语言中的错误函数返回,c,function,char,return,C,Function,Char,Return,我需要从函数中接收字符*,但我不明白是什么错了 int main(int argc,char** argv) { char *respuesta; respuesta = comunicacion(comando); printf("respuesta uno %s",respuesta); return EXIT_SUCCESS; } char *comunicacion(char data[]) { unsigned char c ='d
int main(int argc,char** argv)
{
char *respuesta;
respuesta = comunicacion(comando);
printf("respuesta uno %s",respuesta);
return EXIT_SUCCESS;
}
char *comunicacion(char data[])
{
unsigned char c ='d';
char *respuesta;
append(respuesta,c);
return respuesta;
}
void append(char* s, char c)
{
int len = strlen(s);
s[len] = c;
s[len+1] = '\0';
}
这就是错误:
main.c:24:15:警告:赋值从整数生成指针而不进行强制转换[默认启用]看到“赋值从整数生成指针而不进行强制转换”警告的原因是您的Comunication
函数缺少原型。发生这种情况时,C假设函数返回一个int
,并且它的所有参数也是int
。由于您的comunicacion
函数的上述两项都不正确,因此您的代码具有未定义的行为
另一个问题是comando
未定义。最后,当您调用append
时,respuesta
未初始化。在append
函数中以任何方式使用它都是未定义的行为,因此对未初始化的vale调用strlen
是非法的
最后,请注意,数据
参数在通信
函数中未使用。这需要更改-要么使用参数,要么将其从函数签名中删除
显示
append
的源代码。我把它放在主要功能char*comunicion(char data[])之前;对于协议和编译,非常感谢。