函数内无法访问传到的二维数组,求解

函数内无法访问传入的二维数组,求解
代码如下,看了下出入的地址也确实是A4的地址
int A4[][4] = {{3, 7, 2, 1},
{6, 3, 7, 4},
{5, 1, 8, 7},
{4, 3, 6, 2}
};

int get_max_sum_matrix(int **A, int N, int M)
{
int i = 0, j = 0;
int **d = NULL;

d = (int **)malloc(sizeof(int *) * N);
for (i = 0; i < N; i++){
d[i] = (int *)malloc(sizeof(int) * M);
for (j = 0; j < M; j++){
d[i][j] = 0;  //初始化为0
}
}

d[0][0] = A[0][0];  //这里访问A[0][0]挂掉
for (i = 0; i < N; i++){
for (j = 0; j < M; j++){
if (i == 0 && j > 0){
d[i][j] = d[i][j - 1] + A[i][j];
continue;
}
if (i > 0 && j == 0){
d[i][j] = d[i - 1][j] + A[i][j];
continue;
}
if (i == 0 && j == 0){
continue;
}

d[i][j] = ((d[i][j - 1] > d[i - 1][j]) ? d[i][j - 1] : d[i -1][j]) + A[i][j];
}
}
return d[N- 1][M - 1];
}

调用方式为get_max_sum_matrix(A4, 4, 4);


求大家解答下
二维数组 C

------解决方案--------------------
int get_max_sum_matrix(int **A, int N, int M)
=>
int get_max_sum_matrix(int A[][4], int N, int M)
------解决方案--------------------
引用:
Quote: 引用:

int get_max_sum_matrix(int **A, int N, int M)
=>
int get_max_sum_matrix(int A[][4], int N, int M)

传参后不是会退化为指针吗?为何之前那样不行呢?