w2l*_*ame 4 c++ arrays pointers
我有一个指针*ip_address_server,它保存服务器的IP地址:
in_addr * address = (in_addr * )record->h_addr;
char *ip_address_server = inet_ntoa(* address);
Run Code Online (Sandbox Code Playgroud)
显然,当我使用printf打印它的值时,它会被很好地打印出来.
printf("p address %s" , ip_address_server);
Run Code Online (Sandbox Code Playgroud)
但是现在如果我声明一个大小为20的数组来保存该值,那么我需要将指针中的内容复制到数组中.
char host_name[20];
Run Code Online (Sandbox Code Playgroud)
要复制我使用for循环的值.但是我后来打印的值不是正确的值.
for(int i = 0; ip_address_server[i] != '\0'; i++)
host_name[i] = ip_address_server[i];
printf("hostname %s \n" , host_name);
Run Code Online (Sandbox Code Playgroud)
我认为终止条件有一些错误.
我的做法是错的,还是有其他替代方法?