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.


Anmelden zum Antworten