Создание и передача динам. массива в функцию - проблема с инициализацией
Ситуация следующая - в кач-ве практики задумал создать калькулятор определителей матриц любого порядка. Написал 2 функции - одна на создание минора, другая на определитель - они по очереди вызывают друг друга по принципу рекурсии - условие выхода из рекурсии ещё не определено (сделаю позже). Проблема в следующем - изначально размер матрицы неизвестен и размер её мы получаем от пользователя, отсюда вытекает динамический массив. Подскажите, пожалуйста, где его объявлять - в main() , около #include через DEFINE или в одной из приложенных функций? Пытался сделать, опираясь на схожие вопросы, но массив не виден то одной, то другой, то обоим функциям. Код от начала до конца:
#include <iostream>
#include <cmath>
#include <time.h>
using namespace std;
int matrMinor(int matrMain[n][n], int el, int elI, int elJ, int n, int height, int width)
{
int matrMinor[height-1][width-1] = {};
for(int i = 0; i<height; i++)
{
for(int j = 0; j<width; j++)
{
if(i<elI && j<elJ)
{
matrMinor[i][j] = matrMain[i][j];
}
else if(i < elI && j >= elJ)
{
matrMinor[i][j] = matrMain[i][j+1];
}
else if(i >= elI && j<elJ)
{
matrMinor[i][j] = matrMain[i+1][j];
}
else if(i>=elI && j >= elJ)
{
matrMinor[i][j] = matrMain[i+1][j+1];
}
}
}
return matrDet(matrMinor,n,height-1,width-1);
}
int matrDet(int matr[n][n], int n, int height, int width)
{
int det = 0;
for(int j = 1; j<n; j++)
{
det += pow(-1, 1+j)*matr[1][j]*matrMinor(matr, matr[1][j],1,j,n)
}
return det;
}
int main()
{
int mr[5][5] = {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}};
cout << matrDet(mr[5][5],5,5,5);
return 0;
}
Ряд ошибок при запуске:
tempCodeRunnerFile.cpp:6:28: error: 'n' was not declared in this scope; did you mean 'yn'?
6 | int matrMinor(int matrMain[n][n], int el, int elI, int elJ, int n, int height, int width)
| ^
| yn
tempCodeRunnerFile.cpp:6:31: error: 'n' was not declared in this scope; did you mean 'yn'?
6 | int matrMinor(int matrMain[n][n], int el, int elI, int elJ, int n, int height, int width)
| ^
| yn
tempCodeRunnerFile.cpp:6:33: error: expected ')' before ',' token
6 | int matrMinor(int matrMain[n][n], int el, int elI, int elJ, int n, int height, int width)
| ~ ^
| )
tempCodeRunnerFile.cpp:6:35: error: expected unqualified-id before 'int'
6 | int matrMinor(int matrMain[n][n], int el, int elI, int elJ, int n, int height, int width)
| ^~~
tempCodeRunnerFile.cpp:36:22: error: 'n' was not declared in this scope; did you mean 'yn'?
36 | int matrDet(int matr[n][n], int n, int height, int width)
| ^
| yn
tempCodeRunnerFile.cpp:36:25: error: 'n' was not declared in this scope; did you mean 'yn'?
36 | int matrDet(int matr[n][n], int n, int height, int width)
| ^
| yn
tempCodeRunnerFile.cpp:36:27: error: expected ')' before ',' token
36 | int matrDet(int matr[n][n], int n, int height, int width)
| ~ ^
| )
tempCodeRunnerFile.cpp:36:29: error: expected unqualified-id before 'int'
36 | int matrDet(int matr[n][n], int n, int height, int width)
|