Frage zu Char Arrays
-
Moin,
ich habe hier eine Haupt-Struktur in der wiederum weitere Strukturen eingebunden sind. Alle diese Unterstrukturen enthalten Char Arrays sonst nichts. Beispiel:
typedef struct _lng_rcon{ char game[32]; char ip_port[24]; char cmd[32]; : : : }lng_rcon_t; typedef struct _lng_dlg{ char error[24]; char warning[24]; char question[24]; char info[24]; : : : }lng_dlg_t; typedef struct _lng{ lng_dlg_t dlg; lng_rcon_t rcn; : : : }language_t; language_t lng;
All diese Char Arrays werden mit Zeichen gefüllt, keines ist leer. Wie kann ich eine Routine realisieren, die mit überprüft ob auch alle Elemente der Struktur Zeichen enthalten, damit meine ich am Anfang mindestens ein Zeichen das ungleich "0" ist. Beim Programmaufruf setzte ich die komplette Struktur mit memset(&lng, 0, sizeof(lng)), auf 0 und im weiteren Verlauf werden Strings hinein kopiert. Natürlick könnte ich jedes Elemet einzeln auf rufen und z.B. mit strlen(lng.rcn.game) prüfen ob ein String hinterlegt wurde. Da die Hauptstruktur relativ groß ist und immer weitere Elemente hinzukommen, würde es mich interessieren ob man irgendwie eine Routine erzeugen kann die das ohne prüft ohne daß ich jedes Element einzeln einzeln im Quellcode aufrufen muß. Ich hoffe ich habe mich verständlich ausgedrückt? Wer kann helfen?
-
prinzipiell geht das schon, du holst dir nen zeiger auf den anfang des strukturverbundes und klapperst den speicher byteweise ab. ob das sinnvoll ist, steht auf einem anderen blatt.
mfg.
g.
-
gorgar schrieb:
prinzipiell geht das schon, du holst dir nen zeiger auf den anfang des strukturverbundes und klapperst den speicher byteweise ab. ob das sinnvoll ist, steht auf einem anderen blatt.
mfg.
g.und was soll das bringen
-
ascda schrieb:
gorgar schrieb:
prinzipiell geht das schon, du holst dir nen zeiger auf den anfang des strukturverbundes und klapperst den speicher byteweise ab. ob das sinnvoll ist, steht auf einem anderen blatt.
mfg.
g.und was soll das bringen
wenn ich die char arrays alle gleich groß mache, kann ich feststellen, ob etwas eingetragen wurde.