From fe8088ec4091c79aaabd3c51eed2efc681519c0c Mon Sep 17 00:00:00 2001 From: KohlerMaxi Date: Sun, 8 Nov 2026 15:37:43 +0100 Subject: [PATCH] =?UTF-8?q?getMatrixAt=20in=20Matrix.c=20eingef=C3=BChrt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Startcode/matrix.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Startcode/matrix.c b/Startcode/matrix.c index 66172ab..f4ec7a6 100644 --- a/Startcode/matrix.c +++ b/Startcode/matrix.c @@ -50,6 +50,17 @@ void setMatrixAt(MatrixType value, Matrix matrix, unsigned int rowIdx, unsigned MatrixType getMatrixAt(const Matrix matrix, unsigned int rowIdx, unsigned int colIdx){ + if (rowIdx >= matrix.rows || colIdx >= matrix.cols) { //Gibt fehler bei falschen Idx werten aus / !Arraysyntax beachten, bei 5 rows ist im Array 0 bis 4 deviniert! + return UNDEFINED_MATRIX_VALUE; + } + + unsigned int memoryspace = 0; //variable für den Eintrag an der gesuchten stelle + unsigned int columnlength = matrix.cols; //maximale länge einer Zeile + + memoryspace = (rowIdx * columnlength)+colIdx; //Bsp. Matrix = 5 Spalten und 4 Zeilen. Gesucht ist Zeile 3, Spalte 2. In meinem Eindimensionalen Array ist das 12 + //(2*4)+2 = 12 /Ich gehe erst die vollen Zeilen durch, dann die Position in der Zeile + //!Zeilen und Spalten beginnen bei 0 (Array syntax)! + return matrix.space[memoryspace]; //Gibt den Matrixwert an der ausgerechnenten Stelle zurück / ![] für Arraywert! }