У меня есть указатель * 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);
Я думаю, что есть ошибка с условием завершения.
Я ошибаюсь в своем подходе или есть альтернативный выход для этого?