2-Dimensionales Feld auf anderes Feld zeigen lassen



  • Printe schrieb:

    Say no to triple* schrieb:

    warum nicht so?

    Weil das hier falsch ist:

    matrix[x*y] = malloc (L);
    

    Spiel die Doppelschleife mal durch und achte drauf, welche Werte x*y annimmt.

    Richtig, war unachtsam. Muss [n*x+y] statt [x*y] sein.



  • don't like triple* schrieb:

    Richtig, war unachtsam. Muss [n*x+y] statt [x*y] sein.

    Genau. Aber das "Matrix-Feeling" geht bei deiner Anordnung verloren, du kannst nicht mit matrix[i][j] auf die Elemente zugreifen.


  • Mod

    Wozu man mehrfach malloc aufrufen muss, wenn doch in dem Speicher alles leben kann, wird sich mir wohl nie erschliessen.

    int** matrix = calloc(n*(sizeof(*matrix)+n*sizeof(**matrix))); // wir können auch gleich schön initialisieren
        for (int i=0; i!=n; i++)
            matrix[i] = (int*)(matrix+n)+i*n; // wo ist das decltype(*matrix) für C ?
    

Anmelden zum Antworten