4 Stimmen

Kopieren von Werten aus einem char-Zeiger in ein char-Array

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X