Double-Array zurückgeben
-
Hallo!
Ich arbeite in einem Programm mit Matrizen. Diese habe ich in einem Double[4][4]-Array gespeichert. Nun möchte ich eine Funktion schreiben, die mir eine Marix zurückliefert, jedoch bekomme ich die Rückgabe nicht ganz hin.
Wenn ich die Funktion im Header definiere mit:
double inv4x4(double matrix4x4[4][4]);bekomme ich folgenden Error:
...: error C2440: 'return': 'double [4][4]' kann nicht in 'double' konvertiert werdenWenn ich versuche, die Funktion mit:
double[][] inv4x4(double matrix4x4[4][4]);zu definieren, bekomme ich eine extrem lange Fehlerliste.
Kann mir jemand sagen, ob, und wenn ja, wie ich die Funktion meine MAtrix zurückgeben lassen kann?
Danke schonmal.
-
Funktionen können keine Arrays zurückgeben. Pack das Array in eine Struktur, und gib die zurück.
-
Oder gib der Funktion ein Array, was sie nur füllt.
void inv4x4(double* matrix4x4[4][4]);
-
estartu schrieb:
Oder gib der Funktion ein Array, was sie nur füllt.
void inv4x4(double* matrix4x4[4][4]);Referenzen erleichtern das:
void inv4x4(double &matrix4x4[4][4]);
-
Martin Richter schrieb:
Referenzen erleichtern das:
void inv4x4(double &matrix4x4[4][4]);
Wozu? Array-Funktionsparameter werden doch sowieso nicht kopiert, sind also sozusagen implizit "by reference".
-
Martin Richter schrieb:
estartu schrieb:
Oder gib der Funktion ein Array, was sie nur füllt.
void inv4x4(double* matrix4x4[4][4]);Referenzen erleichtern das:
void inv4x4(double &matrix4x4[4][4]);Der Code sah mir zu sehr nach C aus, da gabs afair nur Zeiger.