Array initialisieren und Inhalt zählen

Wolfsbein

Erfahrenes Mitglied
Hallo
ich habe hier ein Array initialisiert:
Code:
char* myArray[] = {"eins", "zwei", "drei", "vier"};
Ich denke aber das ließe sich eleganter machen, aber ich weiß nicht wie?
Und wenn ich jetzt feststellen will, was in dem Array drin ist, um z.B. eine Schleife zu schreiben:
Code:
for (int i = 0; i < ArrayInhalte; i++)...
habe ich keine Ahnung wie. Mit sizeof(myArray); geht es auf jeden Fall nicht. Wie mache ich das ganze also am Besten?
 
Ob das eleganter geht hängt davon ab, was Du reinschreiben willst.
In der aktuellen Form enthält das Array Strings - die müssen irgendwo herkommen, ohne externe Quelle/einen Algo der sie generiert gehts nicht besser.

Sizeof() liefert Dir die Grösse aller im Array enthaltener Strings zurück. Du könntest überprüfen, ob sizeof(Array)-(sizeof(Array[0])+sizeof(Array[1...x])) 0 ist - dann bist Du durch alle Elemente durch.


Die übliche Art wäre allerdings, entweder die Elementzahl mitzuschreiben oder ein bestimmtes Zeichen als Termination zu verwenden.
 
Sizeof() liefert Dir die Grösse aller im Array enthaltener Strings zurück. Du könntest überprüfen, ob sizeof(Array)-(sizeof(Array[0])+sizeof(Array[1...x])) 0 ist - dann bist Du durch alle Elemente durch.

Falsch, der sizeof-Operator gibt die Größe des Arrays in Bytes zurück. Hier haben wir es mit "char*" zu tun (meist 4 Bytes), d.h. indem du den Rübkgabewert durch die Größe eines Feldes dividierst, erhälst du die Anzahl der Elemente:

Code:
sizeof(Array) / sizeof(Array[0])

Sofern die Werte mit denen du das Array initialisierst nicht per Algorithmus errechenbar sind, ist die Methode "Array = { ... }" die sinnvollste.
 

Neue Beiträge

Zurück