Multidimensionale Arrays als Pointer zu Funktion passen
-
Hallo,
Wie kann ich Multidimensionale Arrays als Pointer zu einer Funktion übergeben?
Bei Eindimensionalen Arrays mache ich ja das ganze so:
<template typename T>
void test(T* array);Doch wie geht das ganze mit Multidimensionalen? Habe natürlich bereits Gegooglet und gelesen, dass ich so viele Sterne benutzen soll, wie mein Array gross ist, jedoch klappt das auch nicht.
Dankeschön!
Samyboy
-
-
"Klappt nicht" ist keine Fehlerbeschreibung. Natürlich ist
<template typename T> void test(T* array); int a[2][3]; test(a);möglich. T ist dann eben int[3].
-
Also habe ich das recht verstanden, dass:
void test(int array[2][5]);nicht als Kopie des Arrays, sondern automatisch als pointer erhält, wenn ich:
int array[2][2]; test(array);aufrufe?
-
Jap.
Wenn du eine Kopie haben willst, dann kannst du einen Standardcontainer, ala std::tr1::array nutzen. (falls du kein tr1 hast, dann halt boost::array).
-
Dankeschön
