vs2010为什么显示常量大小为零的数组,这个数组参数有什么要求吗

#include<stdio.h>
void arry(int m,int n,int target[m][n],const sorce[m][n]);
void show(int m,int n,int arr[m][n]);
int main(void)
{
int m=2;
int n=2;
int target[m][n],sorce[m][n]={{1,1},{2,2}};
arry(2,2,target,sorce);
show(2,2,target);
return 0;
}
void arry(int m,int n,int target[m][n],const sorce[m][n])
{
int i=0,j=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
target[i][j]=sorce[i][j];
}
void show(int m,int n,int arr[m][n])
{
int i=0,j=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf("%d",arr[i][j]);
}

C不允许使用变量定义数组
int target[m][n],sorce[m][n]={{1,1},{2,2}};这里是不对的,改成
nt target[2][2],sorce[2][2]={{1,1},{2,2}};