Matrix mit Pointern: wie Ausgabe?
-
Angenommen ich habe folgendes:
double** mat;wie kann ich meine einzelnen Einträge ausdrucken?
void print(double** m, int n, int m){ for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cout<<m[i][j]<<" "; } cout<<endl; }funktioniert leider nicht

wie kann ich die einzelnen Elemente ansprechen, bzw wie muss meine Funktion aussehen: double** scheinbar nicht
und wie mach ich den Aufruf.Vielen vielen Dank, für eure Hilfe!

-
Wie erzeugst du deine Matrix?
-
Hier kommt es ganz drauf an was du genau in diesem Array drin hast
laraM schrieb:
Angenommen ich habe folgendes:
double** mat;Das wäre im Grunde ein Array auf Doublezeiger, die wiederrum zeigen auf ein double oder ein Array.
double** mat; mat[0]=double*Das wäre das was da drinsteckt.
laraM schrieb:
wie kann ich meine einzelnen Einträge ausdrucken?
Hier kommt es drauf an. Wenn der zeiger im Array nur auf ein Element Zeigt dann reicht das:
mat[0];wenn du mehrere Elemente hast mußt du auf den zeiger der drin ist zugreifen.
double* tmp=mat[0]; tmp[0]; //oder (mat[0])[0];Wobei ich beim 2. Ausdruck nicht 100%ig weiß ob er so funktioniert.
laraM schrieb:
void print(double** m, int n, int m){Pass bei sowas bitte auf, nimm lieber eindeutige variablennamen das vermeidet verwechslungen.
-
So:
mat = new double*[n]; for(int i = 0;i < n;i++){ mat[i] = new double[m]; }
-
void print(double** m, int n, int m){Du solltest nicht 2 der übergebenen Variablen m nennen.
Edit: ups, hat ja Xebov auch schon geschrieben.