2-dimensionales Array an Funktion übergeben

Schnelle objektorientierte, kompilierende Programmiersprache.
Orioner
Beiträge: 102
Registriert: Mo Dez 10, 2012 10:52 am

Re: 2-dimensionales Array an Funktion übergeben

Beitrag von Orioner » Do Aug 27, 2020 9:41 am

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.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: 2-dimensionales Array an Funktion übergeben

Beitrag von Xin » Do Aug 27, 2020 11:31 am

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten