我想在变量中获取mycomputer的ipaddress
此语句打印我的电脑的ipaddress
但我想把它分配给一个变量
如何从inet_ntoa(inaddrr(ifr_addr.sa_data))
获取ipaddress的值到char*
类型的变量ip。
printf("IP Address: %s\n", inet_ntoa(inaddrr(ifr_addr.sa_data)));
答案 0 :(得分:2)
inet_ntoa
已经返回char *
- 它只是指向静态缓冲区,后续调用将覆盖该缓冲区。如果要保存该指向字符串,可以使用strdup()
:
char *ip;
/* ... */
ip = strdup(inet_ntoa(inaddrr(ifr_addr.sa_data)));
完成后,您应该在free()
上致电ip
。