如何将uint32_t转换为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("%s\n",inet_ntoa(*(struct in_addr *)ip));
return 0;
}

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

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

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

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...