我有一个指针*ip_address_server,它保存着服务器的IP地址:
in_addr * address = (in_addr * )record->h_addr;
char *ip_address_server = inet_ntoa(* address);
很明显,当我使用printf打印it的值时,它会被漂亮地打印出来。
printf("p address %s" , ip_address_server);
现在,如果我声明一个大小为20的数组来保存值,则需要将指针中的内容复制到数组中。
char host_name[20];
为了复制这个值,我使用了一个for循环。但是我后来打印的值并不正确。
for(int i = 0; ip_address_server[i] != '\0'; i++)
host_name[i] = ip_address_server[i];
printf("hostname %s \n" , host_name);
我认为终止条件存在一些错误。
我的方法是否有误或者是否有其他可行的解决方案?
i
在for
语句之外没有被定义。 - Ferdinand Beyer