Feldlänge von Parametern bestimmen
-
Wenn ich ein normales eindimensionales Feld habe, kann ich ja die Feldlänge mit
sizeof (Feld)/sizeof (Feld [0])bestimmen. Mein Problem ist jetzt: Wenn ich ein Feld per Parameter übergebe, ist die Größe automatisch 4, weil sich diese Größenangabe ja logischerweise nur auf den Zeiger, der auf das Feld verweist, bezieht. Wie kann ich in so einer Situation die Feldgröße ermitteln?
void funktion (int feld []) //Alternativ wäre auch z.B. int feld [10] möglich. { for (int i=0; i<TjaWasKommtHierHin; i++) cout<<feld [i]; }
-
Uebergib die Feldgroesse als Parameter.
-
Oder verwende statt blanken Arrays einen STL-Container (z.B. vector<>), der hat die Methode size() zur Größenbestimmung.
-
O.k., danke.
-
Alternativ wären auch noch Referenzen möglich.
template <size_t N> void funktion (int (&feld)[N])