将矩阵中的数转置,有异常提示是该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,回车,然后就崩溃了。
遇到类似的问题,应该分析一下原因,定位错误的所在,不要把代码全都贴出来。
------解决方案--------------------
#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进行单步调试。
同时对程序的结构要有把握,自己编的程序嘛,出错时,大概是哪里应该有印象。
------解决方案--------------------