Fremden Array bis '\0' lesen? Ist aber nicht 0 terminiert!
-
Hallo zusammen,
ich bekomme von einem fremden System einen char - Array char xy[length] mit Informationen.
Dieser Array ist leider nicht '\0' terminiert! Wie kann ich den Array so mit '\0' terminieren, dass die richtige Ihnhalte nicht verloren gehen!?! Ich glaube da war etwas mit der Funktion
memcpy
! Oder ?
Danke
-
Wo bekommst du denn length her?
Sofern du diese Information hast, dann einfachxy[length] = '\0';
schreiben. Aber aufpassen, dass das Array auch gross genug ist.
Sollte das Array nicht beschreibbar sein (zB weil const), dann einfach eine Kopie anlegen
char* xy_copy = malloc(length + 1); if (!xy_copy) blabla; memcpy(xy_copy, xy, length); xy_copy[length] = '\0';
Und nach Gebrauch die Speicherfreigabe nicht vergessen!
-
Hi!
Es funktioniert leider nicht!
#define INFO_LEN 8
char *info = new char[INFO_LEN + 1]; memset(info , 0, INFO_LEN + 1); memcpy(info , fremdSystem->daten, INFO_LEN); INFO[INFO_LEN + 1] = '\0';
Ich bekomme nur wirres Zeug!
-
Es funktioniert
char *info = new char[INFO_LEN + 1]; memset(info , 0, INFO_LEN + 1); memcpy(info , fremdSystem->daten, INFO_LEN); INFO[INFO_LEN] = '\0';
... code ...
delete []info;
Danke