2-Dim Array Übergabe



  • Hallo,

    ich möchte gerne ein 2-Dim Array an eine Funktion übergeben. Und zwar folgendermassen.

    #define N 10
    
    SetzeMatrix(double *M)
    {
      for (int i = 0; i < N*N; i++)
        M[i] = 0.0;
    }
    
    void main()
    {
      double Matrix[][N];
    
      SetzeMatrix(Matrix);
    }
    

    Un hier sagt mir der Compiler folgende Fehlermeldung:
    Keine Übereinstimmung des Typs beim Parameter 'Matrix'(double * erwartet, double (*)[10] erhalten!

    Kann mir hier jemand bitte helfen. Wie gesagt möchte einfach nur eine Referenz auf das 2-Dim Array setzen.

    THX



  • Eigentlich eine Standard C Frage (gehört auch da hin, schieb dich gleich) aber mir war als müsste die Deklartion dann so lauten:

    SetzeMatrix(double M[][], int MaxRow, int MaxCol)
    

    Die Parameter MaxRow und MaxCol würde ich ebenfalls übergeben, damit die Funktion nicht gleich umfällt sobald du dein Array vergrösserst. Ausserdem bist du dann nichtmehr von dem "define N 10" abhängig.

    So, genug geplaudert. Ab nach ANSI C

    -junix


Anmelden zum Antworten