Как организовать рекурсию с передачей массива как результат работы функции?
Пишу программу для нахождения определителя матрицы размерностью 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;
}