Cannot convert 'double** (*)[N]' to 'double**' for argument '1' to 'double min(double**, int, int)'
Задание: Функция поиска минимального элемента в матрице. Матрица вещественных чисел. Прототип функции: double func(double** matrix,int m,int n) Написал такой код
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
double min(double **mtx, int m, int n);
int main(){
int i, j, M, N;
printf("Enter size of rows: ");
scanf("%d", &M);
printf("Enter size of column: ");
scanf("%d", &N);
double ** matrix[M][N];
double result;
for (i = 0; i < M; i++)
for (j = 0; j < N; j++){
printf ("A[%d][%d]=", i, j);
scanf ("%lf", & matrix[i][j]);
}
printf("\n");
printf("Matrix: \n");
for (i = 0; i < M; i++){
for(j = 0; j < N; j++){
printf("%.2lf ", matrix[i][j]);
}
printf("\n");
}
result = min(matrix, M, N);
printf("\nMinimal: %5.2lf", result);
return(0);}
double min(double **mtx, int m, int n){
int i, j;
int r = 0, c = 0;
double minimal;
for (i = 0; i < m; i++)
for (j = 0; j < n; j++){
if (mtx[r][c] > mtx[i][j]){
r = i;
c = j;
}
}
minimal = mtx[r][c];
return(minimal);
}
Однако вылезает ошибка:
Cannot convert 'double** (*)[N]' to 'double**' for argument '1' to 'double min(double**, int, int)'
в строчке ввода функции в тело программы:
result = min(matrix, M, N);
Подскажите, пожалуйста, в чём ошибка и как её можно исправить.