Ich habe einen Zeiger *ip_address_server, der die IP-Adresse des Servers enthält:
in_addr * address = (in_addr * )record->h_addr;
char *ip_address_server = inet_ntoa(* address);
Wenn ich printf verwende, um den Wert zu drucken, wird er natürlich korrekt ausgegeben.
printf("p address %s" , ip_address_server);
Aber jetzt, wenn ich ein Array von sagen wir Größe 20 deklarieren, um den Wert zu halten, dann muss ich den Inhalt aus dem Zeiger auf das Array zu kopieren.
char host_name[20];
Um den Wert zu kopieren, habe ich eine for-Schleife verwendet. Aber der Wert, den ich später ausdrucke, ist nicht der richtige Wert.
for(int i = 0; ip_address_server[i] != '\0'; i++)
host_name[i] = ip_address_server[i];
printf("hostname %s \n" , host_name);
Ich glaube, es liegt ein Fehler in der Abbruchbedingung vor.
Liege ich mit meiner Herangehensweise falsch oder gibt es einen alternativen Ausweg für dieses Problem?