将矩阵中的数转置,有异常提示是该0x004021e8指令引用的0xccccccc内存,该内存不能为written

将矩阵中的数转置,有错误提示是该0x004021e8指令引用的0xccccccc内存,该内存不能为written
#include<stdio.h>
int main()
{
void exchange(int arr[][3]);
int a[3][3];
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",a[i][j]);
}

}
exchange(a);

return 0;
}
void exchange(int arr[][3])
{
  int i,j;
 


for(j=0;j<3;j++)
{

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


}
 


------解决方案--------------------
我输入了一个1,回车,然后就崩溃了。
遇到类似的问题,应该分析一下原因,定位错误的所在,不要把代码全都贴出来。
------解决方案--------------------
C/C++ code

#include<stdio.h>
int main()
{
void exchange(int arr[][3]);
int a[3][3];
int i,j;
for(i=0;i<3;i++)
{ 
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}

}
exchange(a);

return 0;
}


void exchange(int arr[][3])
{
  int i,j;
for(j=0;j<3;j++){
for(i=0;i<3;i++){
    printf("%d",arr[i][j]);
}
printf("\n");
}
}

------解决方案--------------------
如果你用的是VC60,那么用F10、F11进行单步调试。
同时对程序的结构要有把握,自己编的程序嘛,出错时,大概是哪里应该有印象。
------解决方案--------------------
探讨

C/C++ code

#include<stdio.h>
int main()
{
void exchange(int arr[][3]);
int a[3][3];
int i,j;
for(i=0;i<3;i++)

for(j=0;j<3;j++)
{
scanf("%d",&amp;a[i][j]);
}

}
exchange(a);

return 0;
}


void e……