我有一个指针 *ip_address_server 保存服务器的 ip 地址:
in_addr * address = (in_addr * )record->h_addr;
char *ip_address_server = inet_ntoa(* address);
很明显,当我使用 printf 打印它的值时,它打印得很好。
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);
我认为终止条件有一些错误。
我的方法有误吗?还有其他解决方法吗?
最佳答案
关于c++ - 将值从 char 指针复制到 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3954092/