Klicken Sie Zeilen an, die mit + markiert sind. Dort ist Hilfeinformation hinterlegt.
Ein Zeiger auf ein Array ist ein Zeiger auf das erste Element. Das Element ist hier vom Typ int[3], weshalb der Zeiger vom Typ int(*)[3] ist. Die runden Klammern im Typ sind erforderlich, weil int*[3] ein Array von drei Zeigern auf int wäre.
Die Spaltenzahl M muss trotz Speicherung auf dem Heap zu Übersetzungszeit feststehen, weil sie für die Recheneinheit beim Zugriff matrix[i] gebraucht wird.