[这个是我的程序,运行出现Unhandled exception in hello.exe: 0xC0000005:Access Violation ,不知道怎么解决。 #include <stdio.h>
void main()
{
int X,Y,Z;
int i,j;
float c[12][4];
float (*p)[4] ;
FILE *fp;
p=c;
printf("enter X Y Z :\n");
scanf("%d %d %d",&X,&Y,&Z);
fp=fopen("jingbao.xyz","r+");
for(i=0;i<12;i++)
{for(j=0;j<4;j++)
fscanf(fp,"%f",&c[i][j]);
fprintf(fp,"\n");}
for(i=0;i<12;i++)
{c[i][1]=c[i][1]*7.41;
c[i][2]=c[i][2]*4.94;
c[i][3]=c[i][3]*2.54;
}
for(i=0;i<12*X-12;i++) //x坐标增加
{*(*(p+i+12)+0)=*(*(p+i)+0);
*(*(p+i+12)+1)=(*(*(p+i)+1))+7.41;
*(*(p+i+12)+2)=*(*(p+i)+2);
*(*(p+i+12)+3)=*(*(p+i)+3);} for(i=0;i<12*X*Y-12*X;i++) //y坐标增加
{*(*(p+i+12*X)+0)=*(*(p+i)+0);
*(*(p+i+12*X)+1)=*(*(p+i)+1);
*(*(p+i+12*X)+2)=(*(*(p+i)+2))+4.94;
*(*(p+i+12*X)+3)=*(*(p+i)+3);} for(i=0;i<12*X*Y*Z-12*X*Y;p++) //z坐标增加
{*(*(p+i+12*X*Y)+0)=*(*(p+i)+0);
*(*(p+i+12*X*Y)+1)=*(*(p+i)+1);
*(*(p+i+12*X*Y)+2)=*(*(p+i)+2);
*(*(p+i+12*X*Y)+3)=(*(*(p+i)+3))+2.54;} fp=fopen("JINGTI.xyz","w+");
for(i=0;i<12*X*Y*Z;i++,p++)
{for(j=0;j<4;j++)
fprintf(fp,"%10.6f",*(*(p+i)+j));
fprintf(fp,"\n");}
fclose(fp);
}
void main()
{
int X,Y,Z;
int i,j;
float c[12][4];
float (*p)[4] ;
FILE *fp;
p=c;
printf("enter X Y Z :\n");
scanf("%d %d %d",&X,&Y,&Z);
fp=fopen("jingbao.xyz","r+");
for(i=0;i<12;i++)
{for(j=0;j<4;j++)
fscanf(fp,"%f",&c[i][j]);
fprintf(fp,"\n");}
for(i=0;i<12;i++)
{c[i][1]=c[i][1]*7.41;
c[i][2]=c[i][2]*4.94;
c[i][3]=c[i][3]*2.54;
}
for(i=0;i<12*X-12;i++) //x坐标增加
{*(*(p+i+12)+0)=*(*(p+i)+0);
*(*(p+i+12)+1)=(*(*(p+i)+1))+7.41;
*(*(p+i+12)+2)=*(*(p+i)+2);
*(*(p+i+12)+3)=*(*(p+i)+3);} for(i=0;i<12*X*Y-12*X;i++) //y坐标增加
{*(*(p+i+12*X)+0)=*(*(p+i)+0);
*(*(p+i+12*X)+1)=*(*(p+i)+1);
*(*(p+i+12*X)+2)=(*(*(p+i)+2))+4.94;
*(*(p+i+12*X)+3)=*(*(p+i)+3);} for(i=0;i<12*X*Y*Z-12*X*Y;p++) //z坐标增加
{*(*(p+i+12*X*Y)+0)=*(*(p+i)+0);
*(*(p+i+12*X*Y)+1)=*(*(p+i)+1);
*(*(p+i+12*X*Y)+2)=*(*(p+i)+2);
*(*(p+i+12*X*Y)+3)=(*(*(p+i)+3))+2.54;} fp=fopen("JINGTI.xyz","w+");
for(i=0;i<12*X*Y*Z;i++,p++)
{for(j=0;j<4;j++)
fprintf(fp,"%10.6f",*(*(p+i)+j));
fprintf(fp,"\n");}
fclose(fp);
}
关键是找出可能出错的地方, 问问题也要问到点子上。
Access Violation 等于C#中的Null reference异常。
所以请查看数组下标超出界限等错误。