gpt4 book ai didi

C - 用 %s 和 char * 重复 printf()

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

char * src_addr;
char * dst_addr;

src_addr = inet_ntoa(ip->ip_src);
printf("src: %s\n", src_addr);

dst_addr = inet_ntoa(ip->ip_dst);
printf("dst: %s\n", dst_addr);

printf("src: %s\n", src_addr);

这将在第三个 printf 语句中输出 dst_addr。我做错了什么吗?

最佳答案

来自文档:inet_ntoa() 返回静态缓冲区中的点和数字字符串,每次调用该函数时都会覆盖该字符串。

因此,在您的情况下,对 inet_ntoa 的第二次调用为您提供了一个新字符串,但在同一缓冲区中,因此 dst_addr 指向与 src_addr 相同的位置,现在都指向新的目标字符串。

关于C - 用 %s 和 char * 重复 printf(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5212349/

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