Forum: Mikrocontroller und Digitale Elektronik Char Array Mehrdimensional


von Bruno (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein Problem mit einem Array. Ich möchte für eine Menge von 
Daten jeweils ein Array für 2 Sprachen erstelen.

Dies soll z.B. so aussehen:

char str_klasse [][] = {"Hund" , "Dog"};

Nur müßte ich in diesem Fall immer die Arraylänge ab dem 2ten Array 
angeben.
Geht das auch irgendwie ohne diese Angabe?

Gruß Bruno

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Hallo Bruno,

>Nur müßte ich in diesem Fall immer die Arraylänge ab dem 2ten Array
>angeben.
>Geht das auch irgendwie ohne diese Angabe?

Ich verstehe deine Frage leider irgendwie nicht, könntest du das näher 
erläutern?

Schöne Grüße,
Alex

von Bruno (Gast)


Lesenswert?

Man muß in C ab dem 2ten Array-Eintrag die Länge angeben (bei einem 
String). In diesem Fall müßte ich den Array so beschreiben:

char str_klasse [][4] = {"Hund" , "Dog"};

Dann is das kein Problem. Aber da ich eine Menge von Daten habe möchte 
ich das vermeiden.

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Und die...
>Menge von Daten
...liegt vermutlich während der Compile-Zeit noch nicht vor :-)

Hmm, so spontan wüsste ich da außer malloc() auch nichts.

von Bruno (Gast)


Lesenswert?

Doch das schon aber bei der Menge is man da schnell bei Fehlern oder 
verschwendet Speicherplatz.

von Andreas K. (a-k)


Lesenswert?

Wenn du zur Laufzeit nichts in die Tabelle reinschreibst, dann lautet 
der Klassiker
  char *str_klasse[][2] = {{"Hund" , "Dog"},{...}};

Wenn doch, und du nicht in der Lage bist für die 2. Dimension eine 
sinnvolle Obergrenze anzugeben, dann wirst du das anders lösen müssen. 
Dynamische Allokation wurde schon genannt, nur pflege ich die bei 
Controllern nur höchst ungern zu verwenden.

von Bruno (Gast)


Lesenswert?

Damit is mir aber schon geholfen. Die Anzahl der Sprachen würde ja 
überall gleich sein.
Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.