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 werden
    

    Wenn 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]);
    

  • Mod

    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.


Anmelden zum Antworten