gpt4 book ai didi

c - c中的错误函数返回

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:07 25 4
gpt4 key购买 nike

我需要从函数中接收 char*,但我不明白哪里出了问题。

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: 警告:赋值从没有转换的整数生成指针[默认启用]

最佳答案

您看到“赋值从没有转换的整数生成指针”警告的原因是您的 comunicacion 函数缺少原型(prototype)。发生这种情况时,C 假定您的函数返回一个 int,并且它的所有参数也是 int。由于关于您的 comunicacion 函数,这些都不是真的,因此您的代码具有未定义的行为。

另一个问题是 comando 是未定义的。最后,当您调用 append 时,respuesta 未初始化。在 append 函数中以任何方式使用它都是未定义的行为,因此对未初始化的值调用 strlen 是非法的。

最后,请注意 data 参数在 comunicacion 函数中未使用。这需要更改 - 使用参数,或将其从函数签名中删除。

关于c - c中的错误函数返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21976570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com