函数内无法访问传到的二维数组,求解
函数内无法访问传入的二维数组,求解
代码如下,看了下出入的地址也确实是A4的地址
求大家解答下
------解决方案--------------------
int get_max_sum_matrix(int **A, int N, int M)
=>
int get_max_sum_matrix(int A[][4], int N, int M)
------解决方案--------------------
代码如下,看了下出入的地址也确实是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)
------解决方案--------------------