将多维数组从一个函数传递到另一个函数

Passing multi-dimentional array from function to function

概念:我正在尝试将一个数组传递给一个函数 1,然后将它再次传递给 function1.All 调用的另一个函数 2 我要做的是打印该数组。(数组我路过):

6 5 //the number of lines and number of columns

7 4 5 2 7

6 9 1 6 3

9 2 7 9 8

8 8 1 7 2

2 3 1 8 4

4 6 5 4 6

所以我的 main 看起来像这样:

int main()
{
    int n,m; //number of lines,number of columns
    scanf("%d %d",&n,&m);

    int **array;
    array = malloc(n * sizeof(int *));
    for(int i=0; i<n; i++)
    {
        array[i] = malloc(m * sizeof(int));
    }

    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            scanf("%d",&array[i][j]);
        }
    }

    function1(n,m,array);

    for(int i=0; i<n; i++)
    {
        free(array[i]);
    }
    free(array);
}

函数 1 看起来像这样:

void function1(int n,int m,int **array)
{
    function2(n,m,&array);
}

然后是函数 2:

void function2(int n,int m,int ***array)
{
        printf("%d %d\n",n,m);
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<m; j++)
            {
                printf("%d ",*array[i][j]);
            }
            printf("\n");
        }
 }

我做错了什么,不仅出现分段错误,而且还打印出以下内容: 6 5 7 6 9 8 2 分段错误(核心已转储) 它将第一列打印为一行。

感谢@Johnny Mopp 的评论,因为括号的优先级高于 * 我所要做的就是写 (*array)[i][j] 来反对 *array[i][j]。谢谢非常感谢您的评论:)