Array-Übergabe an Funktion
-
Hi,
welche Methode einer Array-Übergabe ist besser und warum?
void Fun(int Array[], int ArraySize) { }
oder
void Fun(int *Array, int ArraySize) { // ... }
-
Läuft exakt auf das gleiche hinaus.
-
Ich bin mehr fan von
void Fun(vector<int>array) { //... };
Ich sag mir, warum die Annehmlicjkeiten des Standarts nicht nutzen...
-
ness schrieb:
Ich bin mehr fan von
void Fun(vector<int>array) { //... };
Ich sag mir, warum die Annehmlicjkeiten des Standarts nicht nutzen...
weil man erstmal die Sprache selbst lernen sollte. Sonst macht man solche Fehler, wie Du in dem Beispiel
-
außerdem sollte man std::size_t für Längenangaben nutzen und nicht int!
-
DrGreenthumb schrieb:
weil man erstmal die Sprache selbst lernen sollte. Sonst macht man solche Fehler, wie Du in dem Beispiel
Was genau ist da falsch? (Muss nach dem > noch ein Leerzeichen? Ne, oder?, Ich geh mal davon aus das ganz oben natürlich #include <vector> und using namespace std; steht..., oder meinst du ich soll den vector per referenz übergeben?)
Außerdem gibt es pädagogisch gesehen 2 (oder mehr) Ansätze: Entweder wir fangen beim kleinsten an und arbeiten uns langsam hoch, oder wir benutzen von Anfang an die Sachen so das es möglichst einfach ist und erklären dann hinterher was wir genau tun.
-
@ness Ich glaub er mein den Unterschied zwischen:
void foo(vector<int>vec);
und
void foo(const vector<int>&vec);
-
Was in dem Sinne aber nicht falsch sondern höchstens unschön wäre.
/edit: Ich glaube ich weiß was er meint, nämlich das ich entweder einen Vektor zurückgeben oder per referenz empfangen sollte, weil sonst alle änderungen für die Katz sind?
-
Ja, ich meinte schon die fehlende Referenz. Bzw. bei nicht-veränderung die const-referenz.
Ob nur unschön oder ganz falsch, ist eigentlich egal. Beides ein Fehler.Entweder wir fangen beim kleinsten an und arbeiten uns langsam hoch, oder wir benutzen von Anfang an die Sachen so das es möglichst einfach ist und erklären dann hinterher was wir genau tun.
glaube nicht, dass letzteres Sinnvoll ist. Dafür bietet die Sprache zu viele Fallstricke (wie man zB. an diesem Beispiel sieht). Aber da streiten sich die Geister...