怎么样才能让二维数组作为实参进入函数,试了好久不知道为什么进不去,希望有人能解答一下

问题遇到的现象和发生背景

怎么样才能让二维数组作为实参进入函数,试了好久不知道为什么进不去,希望有人能解答一下
程序的目的时运用函数使给定的一个5*5的二维整型数组转置,即行列互换

用代码块功能插入代码,请勿粘贴截图
#include 

int array(int b[][5])
{
    int i,j,x,y,sample;
    for(i=0,y=0;i<5&&y<5;i++,y++){
        for(j=0,x=0;j<5&&x<5;j++,x++){
            sample=b[i][j];
            b[i][j]=b[x][y];
            b[x][y]=sample;
        }
    }
}
int main()
{
    int i,j;
    int a[5][5]={{5,5,5,5,5},{4,4,4,4,4},{3,3,3,3,3},{2,2,2,2,2},{1,1,1,1,1}};
    array(a[5][5]);
    for(i=0;i<5;i++){
        for(j=0;j<5;j++){
            printf("%d",a[i][j]);
        }
        printf("\n");
    }
}

运行结果及报错内容

img

调用函数改为array(a)

array(a[5][5]) 改为 array(a)