动态多维数组

1 c malloc multidimensional-array

我尝试了所有的东西,从我的理解,这段代码是正确的,但它仍然给我的分段错误.救命?

#include <stdio.h>
#include<malloc.h>

void da(int ***array, int row, int col){
    int i;
    *array=(int **)malloc(sizeof(int *)*row);
    for (i=0; i<row; i++)
        *array[i]=(int *)malloc(sizeof(int)*col);   
}

main(){
    int **array;
    int i,n,m;
    printf("Input number of rows: ");
    scanf("%d",&n);
    printf("Input number of columns: ");
    scanf("%d",&m);
    da(&array,n,m);
    for (i=0; i<n; i++)
        free(array[i]);
    free(array);
}
Run Code Online (Sandbox Code Playgroud)

Ole*_*leg 6

运营商[]优先于运营商*.放括号:(*array)[i]=(int *)malloc(sizeof(int)*col);