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.


Anmelden zum Antworten