Stringausgabe eines mehrdimensionalen Arrays
-
Hallo,
ich hab ein dreidimensionales Array in Gebrauch. In jedem Feld der Ebene befinden sich 5 Felder worin eine Zeichenkette abgelegt ist (array[3][3][5]). Nun will ich mir diese Kette ausgeben lassen ohne dabei jedes Feld einzeln ansprechen zu müssen. Analog zu:
char feld[]="abc";
printf("%s",feld);Nun hatte ich es wie folgt versucht um den String, der zu einer bestimmten Koordinate gehört, auszugeben. Scheint leider nicht ganz richtig zu sein.
printf("%s",array[zeile][spalte]);
-
printf("%s", &array[zeile][spalte]);
-
Bei mir ändert sich da leider nix.
char feld[2][3] = {{"abc"},{"def"}};
printf("%s", &feld[0]); --> Ergebnis: abcdefFK...Es wird leider nicht nur die Zeile 0 ausgelesen sondern alles was im Array steht plus eventuellen Müll aus dem Speicher.
-
Für die Zukunft: du hattest irgendwie die Fehlerbeschreibung vergessen!
EDIT: Deine Zeichenketten müssen auch mit einer 0 abschließen, sonst passiert genau, was du beschrieben hast! "HANS" ist eine Zeichenkette der Länge 5 und wird mit einer binären Null (String-Ende-Zeichen) abgeschlossen.
EDIT2: Und natürlich musst du für einen String "abc" 4 Bytes bereitstellen, eben wegen der abschließenden Null.
-
dein feld is zu klein das muss [2][4] sein. ansonsten is es schon richtig wie du es in deinem ausgangspost machen wolltest, also feld[0]. Wilmas beitrag war natürlich schwachsinn
-
Ich bin von dem Array ausgegangen: array[3][3][5], um die hintern (nullterminierten)5 anzusprechen
die Adresse von ( &array[x][y] ) also einer Dimension weniger.
-
Alles klar, nun läufts wie gewünscht.
Besten Dank.
-
"HANS" ist eine Zeichenkette der Länge 5
Mein strlen() funktioniert scheinbar nicht richtig.