Проблема в рекурсии в функции на си
Писала программу для матриц M*N на си через структуру:
typedef struct m {
float** array;
int row;
int col;
} Matrix;
Необходимо найти определитель матрицы через рекурсию. Для этого написала отдельную функцию для поиска минора:
void minor_matrix (Matrix A, Matrix minor){
int i, j;
int offRow = 0;
int offCol = 0;
for (i = 0; i < (A.col - 1); i++){
offRow = 1;
}
offCol = 0;
for (j = 0; j ,(A.col - 1); j++){
if (j == A.col){
offCol = 1;
}
minor.array[i][j] = A.array[i + offRow][j + offCol];
}
}
И, собственно, функцию для поиска самого определителя:
float determinant(Matrix A){
int i, j;
int det = 0;
int degree = 1;
float** minor;
if ((A.col == 1)& (A.row == 1)){
return A.array[0][0];
}
else if ((A.col == 2) & (A.row == 2)){
return A.array[0][0]*A.array[1][1] - A.array[0][1]*A.array[1][0];
}
else if (A.col == A.row > 2){
minor = (float**)malloc(sizeof(float*)*(A.col - 1));
for (i = 0; i < (A.col - 1); i++){
minor[i] = (float*)malloc(sizeof(float)*(A.col - 1));
}
}
for (j = 0; j < A.col; j++){
minor_matrix (Matrix A, Matrix minor);
det += (degree * A.array[0][j] * determinant (Matrix A));
degree = -degree;
}
for (i = 0; i < (A.col - 1); i++){
free(minor[i]);
}
free(minor);
}
Выдает ошибку expected primary-expression before 'A' , когда вызываю в последней функции minor_matrix. Не могу понять, как правильно её вызвать. Спасибо