Как организовать рекурсию с передачей массива как результат работы функции?

Пишу программу для нахождения определителя матрицы размерностью n на n. Первая функция создает матрицу без учета строки и столбца, а вторая находит сам определитель при помощи дополнений. Но компилятор не позволяет спокойно возвращать массив в качестве результата:

[Error] invalid conversion from 'int*' to 'int' [-fpermissive]

Как сделать так, чтобы не было проблем с переводом из указателя на массив в сам массив или наоборот и рекурсия начала работать?

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int create(int old_mat[], int old_len,int coordinate){
    int new_mat[old_len-1];
    int index=0;
    for (int i=0;i<old_len*old_len;i++){
        if (i/old_len!=0 && i%old_len!=coordinate){
            new_mat[index]=old_mat[i];
            index++;
        }
    }
    cout<<endl;
    return new_mat;
}

int det(int matrix[], int len){//x - ÷èñëî, îò êîòîðîãî è èùåì ôàêòîðèàë
    int determinant = 0;
    if (len==1){
        return matrix[0];
    }
    else{
        for (int i=0;i<len;i++){
            determinant+=pow(-1,i+2)*matrix[i]*det(create(matrix,len-1,i%len),len-1);
        }
        return determinant; 
    }
}


int main() {
    srand(time(NULL));
    setlocale(LC_ALL, "Russian"); 
    
    int n;
    cin>>n;
    int matrix[n*n];
    for (int i=0;i<n*n;i++){
            matrix[i]=rand()%21-10;
            cout<<matrix[i]<<' ';
    }
    cout<<endl;
    cout<<det(matrix,n);
    return 0;
}

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