2 つの単純な関数があり、1 つの関数入力は NxM 配列にあり、N+2 と M+2 は含まれません。したがって、元の配列はゼロで囲まれている必要があり、他の出力は配列全体です。out 関数が呼び出されると、非常に奇妙な出力が得られます。
しかし、コードをメイン関数に移動すると、すべて問題ありません。このコードを CodeBlocks でコンパイルしてみましたが、NetBeans.Behaviour は同じです。そこで何が起こっているのかわかりません。誰か説明できますか?
.....
int main()
{
int array[N+2][M+2]={{0}};
local_in(N,M,array);
local_out(N,M,array);
return 0;
}
void local_in(int len, int len2,int arr[][len2])
{
int i;
int j;
for(i = 1; i <= len; i++)
for(j = 1; j <= len2; j++){
scanf("%d",&arr[i][j]);
}
}
void local_out(int len, int len2,int arr[][len2])
{
int i;
int j;
for(i = 0; i < len+2; i++){
for(j = 0; j < len2+2; j++)
printf("%d ",arr[i][j]);
printf("\n");
}
}