将矩阵中的数转置,有错误提示是该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进行单步调试。
同时对程序的结构要有把握,自己编的程序嘛,出错时,大概是哪里应该有印象。
[解决办法]