diff --git a/matrix.c b/matrix.c index 2a4eb7b..22b68f3 100644 --- a/matrix.c +++ b/matrix.c @@ -86,6 +86,9 @@ Matrix add(const Matrix matrix1, const Matrix matrix2) { // Matrix if (rowsEqual == 1 && colsEqual == 1){ Matrix result = createMatrix(matrix1.rows, matrix1.cols); + if (result.buffer == NULL){ + return (Matrix){0,0,NULL}; + } for (int i = 0; i< rows1; i++) { for (int j= 0; j< cols1; j++){ int valueM1= getMatrixAt(matrix1, i, j); @@ -101,6 +104,9 @@ Matrix add(const Matrix matrix1, const Matrix matrix2) { Matrix newMatrix = broadcastingCols(matrix1, cols2); //add Matrix result = createMatrix(newMatrix.rows, newMatrix.cols); + if (result.buffer == NULL){ + return (Matrix){0,0,NULL}; + } for (int i = 0; i< rows1; i++) { for (int j= 0; j< cols2; j++){ int valueM1= getMatrixAt(newMatrix, i, j); @@ -115,6 +121,9 @@ Matrix add(const Matrix matrix1, const Matrix matrix2) { Matrix newMatrix2 = broadcastingCols(matrix2, cols1); //add Matrix result = createMatrix(newMatrix2.rows, newMatrix2.cols); + if (result.buffer == NULL){ + return (Matrix){0,0,NULL}; + } for (int i = 0; i< rows1; i++) { for (int j= 0; j< cols1; j++){ int valueM1= getMatrixAt(matrix1, i, j); @@ -132,6 +141,9 @@ Matrix add(const Matrix matrix1, const Matrix matrix2) { Matrix newMatrix = broadcastingRows(matrix1, rows2); //add Matrix result = createMatrix(newMatrix.rows, newMatrix.cols); + if (result.buffer == NULL){ + return (Matrix){0,0,NULL}; + } for (int i = 0; i< rows2; i++) { for (int j= 0; j< cols1; j++){ int valueM1= getMatrixAt(newMatrix, i, j); @@ -146,6 +158,9 @@ Matrix add(const Matrix matrix1, const Matrix matrix2) { Matrix newMatrix2 = broadcastingRows(matrix2, rows1); //add Matrix result = createMatrix(newMatrix2.rows, newMatrix2.cols); + if (result.buffer == NULL){ + return (Matrix){0,0,NULL}; + } for (int i = 0; i< rows1; i++) { for (int j= 0; j< cols1; j++){ int valueM1= getMatrixAt(matrix1, i, j);