gpt4 book ai didi

c - 为什么这个主机会导致段错误?

转载 作者:行者123 更新时间:2023-11-30 15:57:42 25 4
gpt4 key购买 nike

struct hostent *hostName;

struct in_addr ipv4addr;

inet_pton(AF_INET, inet_ntoa(client.sin_addr), &ipv4addr);

hostName = gethostbyaddr(&ipv4addr, sizeof(ipv4addr), AF_INET);

printf("Host name: %s\n", hostName->h_name);

最后一行出现段错误。我查找了 hostent 的正确使用方法,msdn 文档显示它的使用方式完全像这样。什么会导致段错误?

最佳答案

如果发生错误,gethostbyaddr() 函数会返回 NULL,但我没有看到您在代码中对此进行检查。尝试取消引用 NULL 指针会导致段错误。

你需要这样的东西:

if (hostName == NULL) {
printf("There was an error!\n");
exit(1);
}

您可以使用 herror() 函数打印出解析器遇到的实际错误(尽管手册页表明 herror() 已过时)。

关于c - 为什么这个主机会导致段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10323412/

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