Создание и передача динам. массива в функцию - проблема с инициализацией

Ситуация следующая - в кач-ве практики задумал создать калькулятор определителей матриц любого порядка. Написал 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)
      |   

Ответы (0 шт):