定义函数中的二维要怎么写?

#include
int i,j,n,t,k[105][105];
void transpose(int k[105][105],int n)
{
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
{
t=k[i][j];
k[i][j]=k[j][i];
k[j][i]=t;
}
}

int main()
{

scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&k[i][j]);


transpose(k[105][105],n);




for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%d ",k[i][j]);
printf("\n");
}
return 0;

}
运行不了?

函数调用transpose(k[105][105],n);改成transpose(k, n);才行。
k[105][105]表示的是第106行第106列的那个元素

 #include<stdio.h>
int i, j, n, t, k[105][105];
void transpose(int k[105][105], int n)
{
    for (i = 1; i <= n; i++)
    for (j = 1; j <= i; j++)
    {
        t = k[i][j];
        k[i][j] = k[j][i];
        k[j][i] = t;
    }
}


int main()
{

    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    for (j = 1; j <= n; j++)
        scanf("%d", &k[i][j]);

    transpose(k, n);

    for (i = 1; i <= n; i++)
    {
        for (j = 1; j <= n; j++)
            printf("%d ", k[i][j]);
        printf("\n");
    }
    return 0;
}