加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何将uint32_t转换为struct in_addr?

发布时间:2020-12-14 01:44:08 所属栏目:Windows 来源:网络整理
导读:#include stdio.h#include sys/socket.h#include netinet/in.h#include arpa/inet.hint main(){uint32_t ip = 0;printf("%sn",inet_ntoa(*(struct in_addr *)ip));return 0;} 我不想通过声明任何临时变量来做到这一点.该程序给出了分段错误. struct in_addr
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main()
{
uint32_t ip = 0;
printf("%sn",inet_ntoa(*(struct in_addr *)ip));
return 0;
}

我不想通过声明任何临时变量来做到这一点.该程序给出了分段错误.

struct in_addr {
    uint32_t s_addr; 
};
你正在将int转换为指针.也许你想要这个:
*(struct in_addr *)&ip

但结果是实现定义的(一开始就有字节序注意事项).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读