Diskussion:C-Programmierung: Arrays

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Mehrdimensionale Arrays[Bearbeiten]

Der Abschnitt Mehrdimensionale_Arrays sollte gelöscht oder auf eine Unterseite verschoben werden. Es kann sich ohnehin keiner ein vierdimensionales Feld vorstellen. Für das Erlernen der Sprache ist der Abschnitt überflüssig. -- Klaus 22:31, 16. Jul. 2009 (CEST)

Im Abschnitt Mehrdimensionale_Arrays wird ein int vararray[6][5] als Beispiel genannt, aber die Darstellungen darunter und daneben haben nicht die Dimension [6][5]. -- Klaus 23:35, 16. Jul. 2009 (CEST)

Gerade weil es gefehlt hat und mir das Kapitel deshalb unvollständig vorkamm, habe ich es erstellt. Es zeigt ein vierdimensionales Array so das man es ganz leicht verstehen kann.
Außerdem gibt es Mehrdimensionale Array ja nicht umsonst. $Irgendwann an $irgendeinem Projekt wird man es brauchen und wenn man es nie gelernt hat würde man ganz schön mit heruntergelassenen Hosen da stehen und in selbstmitleid versinkend sich selbst fragen wieso man es nie gelernt hat. Genau um dem vorzubeugen sollte es weiterhin enthalten bleiben. -- 93.193.73.181 23:45, 16. Jul. 2009 (CEST)
Wer die Idee eines zwei- und dreidimensionalen Feldes verstanden hat, wird auch ein 17-dimensionales Feld benutzen können (auch ohne es sich vorstellen zu können). Übrigens: Es handelt sich um ein Buch für Anfänger. "ganz leicht verstehen" jetzt kann ich nicht mehr weiterschreiben, ich muss erst mal ablachen. -- Klaus 00:11, 17. Jul. 2009 (CEST)

"...ein int vararray[6][5] als Beispiel genannt, aber die Darstellungen darunter und daneben haben nicht die Dimension [6][5]..." Für die Darstellung daneben kann ich nichts, die war schon vorher da und wurde anscheinend nur zur Dekoration reingestellt. Doch das mittlere Beispiel stimmt schon. 0-5 + 0-4 = 30Felder. Hat alles schon seine Richtigkeit oder hast du ein anderes Beispiel gemeint? -- 93.193.73.181 23:50, 16. Jul. 2009 (CEST)

Unter "Visuelle Darstellung:" ist ein Feld mit einer unbestimmten Anzahl von Zeilen und Spalten dargestellt. -- Klaus 00:11, 17. Jul. 2009 (CEST)
Geht das auch etwas genauer? Ich habe das Wort "Visuelle Darstellung" mehrere male in diesem Kapitel verwendet. Unteranderem auch bei teilinitalisierten (Mehr/Ein)Dimensionalen Arrays. Meinst du vielleicht eins von denen? -- 93.193.73.181 00:15, 17. Jul. 2009 (CEST)
Die dritte Zeile unter der Überschrift "Mehrdimensionale_Arrays". -- Klaus 18:34, 17. Jul. 2009 (CEST)
"...Doch das mittlere Beispiel stimmt schon. 0-5 + 0-4 = 30Felder. Hat alles schon seine Richtigkeit..." + Die Darstellung zeigt einerseits die benutzen Felder wie sie zweidimensional dargestellt werden und andererseits das man es auch nach rechts und/oder unten erweitern könnte. Doch die Zeilen sind leer und sollen nur zur verständnis dienen, deshalb sind sie auch "abgebrochen" am Rand. -- 93.193.123.219 20:42, 17. Jul. 2009 (CEST)
Du packst zu viel in die Zeichnung hinein. Wenn du int vararray[6][5] darüber schreibst, muss das Beispiel genau 6 x 5 groß sein. Dass ein Feld auch größer sein kann, ist ein völlig anderes Thema (das nicht illustriert werden braucht). -- Klaus 21:45, 17. Jul. 2009 (CEST)
Jetzt ist die Zeichnung aber schon gemacht und es sieht doch auch gut so aus wie es ist, meinst nicht auch? (Lieber etwas zuviel als etwas zu wenig) Wäre doch Verschwendung es jetzt abmagern zu lassen. Würde nur das Verschwendermonster verärgern und das wollen wir doch sicher nicht. ;)

Beim nächsten mal werde ich solch eine Art von Zeichnung einfach gleich von anfang an schlanker gestallten, versprochen. -- 93.193.123.219 23:04, 17. Jul. 2009 (CEST)

Hab mir doch gleich gedacht, dass du die Zeichnung vor allem deshalb verteidigst, weil sie dich viel Arbeit gekostet hat ... Trotzdem ist sie sachlich falsch und irreführend. -- Klaus 00:40, 18. Jul. 2009 (CEST)

Code visuell ansprechbar, gut lesbar[Bearbeiten]

Darüber, was "ansprechend und gut lesbar" ist, kann man oft diskutieren. Beispielsweise spricht sehr viel dafür, dass öffnende und schließende geschweifte Klammern in derselben Spalte übereinander stehen. So wurde es auch im Beispiel-Code unter C-Programmierung: Über dieses Buch#Formatierung vorgemacht; das ist jedenfalls der Standard für dieses Buch. Es ist deshalb völlig korrekt, dass Buchfreund die Änderung durch ‎178.3.240.199 rückgängig gemacht hat und mir dabei um etwa eine Minute zuvorgekommen ist. :) -- Jürgen 11:39, 9. Feb. 2014 (CET)

Bei C kann man das bzgl. der Funktionsklammern allerdings nicht diskutieren, da viele altgediente C-Tools Funktionsblöcke nur an einer öffnenden Klammer in der 1. Spalte erkennen. Das ist Standard seit K&R und findet sich auch in den gängigen Style-Guides von z.B. GNU oder dem Linux Kernel. --Buchfreund 11:51, 9. Feb. 2014 (CET)

Keine Funktion des Programmbeispiels "Arrays und deren Speicherplatz"[Bearbeiten]

Ich habe den Beispielcode so übernommen und kompiliert. Bei mir führt das zu Fehlermeldungen. Der Fehler ist das printf mit '%d' ein 'int' erwartet, sizeof() aber 'long unsigned int' zurück liefert. Ich verstehe die Fehlermeldung, anderen Anfängern könnte es aber vielleicht anders gehen. Vielleicht kann sich jemand der sich besser auskennt als ich, noch einmal drüber sehen. Vielleicht habe ich auch was falsch gemacht.

Vgl.:

signed char siAry1[200]; printf( "signed char = %d Byte \n", sizeof(signed char));

Fehler (Linux Mint, 64 bit, gcc):

warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=] printf( "signed char = %d Byte \n", sizeof(signed char) );

-- 85.212.113.86 00:18, 13. Mär. 2016 (CET)