Seite 2 von 2

Re: 2-dimensionales Array an Funktion übergeben

Verfasst: Do Aug 27, 2020 9:41 am
von Orioner
Ok, Xin, einiges von dem, was du schreibst, wusste ich auch schon, z.B. dass das Array nur Strings der Länge 6 (nur 5 wegen des Terminierungszeichens?) aufnehme kann. Wenn ich dich richtig verstehe, muss ich an die Funktion printf lediglich "local[0]" übergeben, anstelle von "local", dann wäre alles schick. Ich vermute, das ist deshalb weil es ein Array von Strings ist und ich den ersten String in dem Array (welches nur diesen einen String hat), zur Ausgabe übergeben muss. Enthielte das Array mehrere String und ich würde die anderen ausgeben wollen, müsste ich entsprechend "local[1]", "local[2]" usw. angeben.

Re: 2-dimensionales Array an Funktion übergeben

Verfasst: Do Aug 27, 2020 11:31 am
von Xin
Richtig.

Der Punkt hier ist, dass printf() sich nicht für den Typ des Zeigers interessiert und der erste String in einem Array von String-Arrays nunmal auf der gleichen Stelle liegt, wie das Array von char-Arrays. Darum funktioniert es. Aber technisch richtig ist es nicht. local[0] ist das Array von char-Array und geht dann 0 char-Arrays weiter. Da steht quaso &local + 0*sizeof(char[6]), also Adresse von Local + 0... kommt das gleiche raus, aber jetzt stimmt auch der Typ (für den sich printf ja überhaupt nicht interssiert).

Die Unterscheidung ist eher wichtig für Dein Verständnis.