gpt4 book ai didi

C 将字符串传递给函数问题

转载 作者:行者123 更新时间:2023-11-30 14:56:10 26 4
gpt4 key购买 nike

我在将 char* 传递给 C 中的函数时遇到问题。

我有一个方法dns_magic ,其中参数之一是 char *addr 。另外,我还有一个char temp[20] ,其中包含一个字符串(通常类似于 irc.rizon.net )。就在我打电话dns_magic(temp)之前,我做了一个printf("Temp: %s", temp)它按预期打印。第一行dns_magic ,我调用printf("Addr: %s", addr) ,并且它不打印任何内容(就好像字符串为空)。

这是代码的相关部分:

printf("Temp: %s", temp);
res = dns_magic(temp, conf->port, &hints);

struct addrinfo *dns_magic(char *addr, int port_i, struct addrinfo hints)
{
printf("Addr: %s", addr);

有人可以帮我告诉我我做错了什么吗?我尝试更改 dns_magic 以采用 char[20] 并禁用编译器优化,但似乎都没有解决问题。

感谢任何帮助。

最佳答案

打开编译器警告并消除它们。

我建议你的第三个参数把事情搞砸了。您声明了整个结构,但传入了一个指向该结构的指针。堆栈困惑,函数无法正确找到传递的参数。

您应该使用适当的 const 修饰符将最后一个参数设置为 struct addrinfo *hints

关于C 将字符串传递给函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44876580/

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