gpt4 book ai didi

c - 警告 : format ‘%s’ expects type ‘char *’ , 但参数 2 的类型为 ‘int’

转载 作者:太空狗 更新时间:2023-10-29 15:45:34 25 4
gpt4 key购买 nike

我认为这段代码和错误是不言自明的,但我不知道为什么?

环境:
操作系统:Mac OS X 10.6.1
编译器:i686-apple-darwin10-gcc-4.2.1

代码:

 1  #include <stdio.h>
2 #include <stdlib.h>
3 #include <netdb.h>
4 #include <sys/socket.h>
5
6 int
7 main(int argc, char **argv)
8 {
9 char *ptr, **pptr;
10 struct hostent *hptr;
11 char str[32];
12
13 //ptr = argv[1];
14 ptr = "www.google.com";
15
16 if ((hptr = gethostbyname(ptr)) == NULL) {
17 printf("gethostbyname error for host:%s\n", ptr);
18
19 }
20 printf("official hostname:%s\n", hptr->h_name);
21
22 for (pptr = hptr->h_aliases; *pptr != NULL; pptr++)
23 printf(" alias:%s\n", *pptr);
24
25 switch (hptr->h_addrtype) {
26 case AF_INET:
27 case AF_INET6:
28 pptr = hptr->h_addr_list;
29
30 for (; *pptr != NULL; pptr++)
31 printf(" address:%s\n", inet_ntop(hptr->h_addrtype, *pptr, str, sizeof(str)));
32 break;
33 default:
34 printf("unknown address type\n");
35 break;
36 }
37 return 0;
38 }


编译器和执行输出如下:

zhumatoMacBook:CProjects zhu$ gcc gethostbynamedemo.c 
gethostbynamedemo.c: In function ‘main’:
gethostbynamedemo.c:31: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’
zhumatoMacBook:CProjects zhu$ ./a.out
official hostname:www.l.google.com
alias:www.google.com
Segmentation fault

为什么我收到格式警告,这可能是段错误的原因吗?

最佳答案

  1. 请使用-Wall 编译您的代码。
  2. 包含 inet_ntop 的头文件 (arpa/inet.h)
  3. 阅读 inet_ntop(3) 手册页并注意参数类型。

关于c - 警告 : format ‘%s’ expects type ‘char *’ , 但参数 2 的类型为 ‘int’,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2857544/

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