Hi, kann man statische 2D Char Arrays mit verschiedenen Größen definieren ?
Normalerweise sind die Größen immer gleich, also z.B. char a[5][10].
Also 5 Char Arrays mit jeweils 10 Chars.
Kann ich jetzt die ersten 2 Char Arrays mit 100 Bytes deklarieren ?
So daß
sizeof(a[0]) = 100
sizeof(a[1]) = 100
sizeof(a[2]) = 10
sizeof(a[3]) = 10
sizeof(a[4]) = 10
Kann ich jetzt die ersten 2 Char Arrays mit 100 Bytes deklarieren ?
So daß
sizeof(a[0]) = 100
sizeof(a[1]) = 100
sizeof(a[2]) = 10
sizeof(a[3]) = 10
sizeof(a[4]) = 10
(Übrigens kann bei der Arraydefinition für a[] und s[] die 5 weggelassen werden, der Compiler kann selbst zählen und bestimmt die Anzahl der Arrayelemente aus der Anzahl der Initialisierer)
Du fragst nach C++? Dann nimm std::array<>. Weil nun unterschiedlich große Arrays jeweils unterschiedliche DT haben, kann man die Arrays oder Zeiger darauf nicht in einem anderen weiteren homogenen Container speichern. Da kommt std::variant<> ins Spiel. Zwar könnte man auf die Zeiger verzichten und die Array-Typen zu den Parametern des std::variant<> machen, was aber ungünstig ist, weil dann der Speicherbedarf steigt (std::variant<> ist eine type-safe-union). Also nimmt man Zeiger.
Willst Du zur Laufzeit herausfinden, wie groß Deine Arrays sind, und das
nur aus a[] heraus?
Das könntest Du mit einem zusätzlichen Array erreichen:
Da man Arrays aus char eh nur für Text verwenden sollte, kann man dann auch gleich die in C übliche Nullterminierung verwenden und hat dann auch die Länge und kann die ganzen Stringfunktionen von C verwenden.
Vielen Dank für die ganzen Antworten.
Ich habe es jetzt so gemacht wie Harald/Mikro 7/Michael es beschrieben hat. War am einfachsten in die bestehende Programmierung einzubinden ( Die war etwas umständlich)
Ich brauchte eine Funktion ähnlich der split-Funktion in JS und dazu brauche ich ein Array von char-Arrays (Strings).