【发布时间】:2017-10-15 03:36:50
【问题描述】:
我正在尝试在我的 C 程序中打印一些输出。
当我用 cc 编译时,我得到这个错误:
“whoisclient.c”,第 70 行:参数 #1 与原型不兼容: 原型:struct in_addr {union {..} S_un}: “/usr/include/arpa/inet.h”,第 61 行参数:指向 char 的指针
在我的代码的这一部分:
printf("Addresses\n");
int j=0;
while(hp ->h_addr_list[j]!=NULL){
printf("hp_addr_list[%d] = %s\n", j, inet_ntoa(hp->h_addr_list[j]));
j++;
}
我尝试添加星号或添加/删除hp->,但我没有想法。我不完全理解错误消息以及我做错了什么。
【问题讨论】:
-
你为什么不用
getaddrinfo? -
请在您的问题上标记第 70 行和第 61 行。
-
h_aliases[i]也未初始化使用。 (应该是while(hp->h_aliases[i]!=NULL) -
@DavidC.Rankin 你说得对!谢谢。
-
inet_ntoa()的原型是char *inet_ntoa(struct in_addr in);注意参数是一个结构的实例。 (该实例只包含一个uint32_t字段,但是,必须传递一个结构的实例,您还没有向我们展示您的其余代码,因此我们无法准确确定您做错了什么。
标签: c