diff --git a/matrix.c b/matrix.c index ad00628..4091972 100644 --- a/matrix.c +++ b/matrix.c @@ -6,12 +6,29 @@ Matrix createMatrix(unsigned int rows, unsigned int cols) { - + Matrix m; + m.rows = rows; + m.cols = cols; + m.data = (MatrixType*) calloc(rows * cols, sizeof(MatrixType)); + if(m.data == NULL){ + m.rows = 0; + m.cols = 0; + + } + return m; } void clearMatrix(Matrix *matrix) { - + if(matrix == NULL){ + return -1; + } + if(matrix->data != NULL){ + free(matrix->data); + matrix->data = NULL; + } + matrix->rows = 0; + matrix->cols = 0; } void setMatrixAt(MatrixType value, Matrix matrix, unsigned int rowIdx, unsigned int colIdx) diff --git a/matrix.h b/matrix.h index cc640d1..68b4dbb 100644 --- a/matrix.h +++ b/matrix.h @@ -6,6 +6,11 @@ typedef float MatrixType; // TODO Matrixtyp definieren +typedef struct{ + int rows; + int cols; + MatrixType* data; +}Matrix; Matrix createMatrix(unsigned int rows, unsigned int cols);