关于handled exception .exe:access violation的解决方法
来源:互联网 发布:怎么卸载ubuntu系统 编辑:程序博客网 时间:2024/05/22 15:31
我遇到handled exception .exe:access violation的问题无法解决,请大家一起来看看怎么回事。
int X,Y,Z;
float x,y,z,x1,y1,r,h;
#include <stdio.h>
void jingti(float c[][4],float (*p)[4]) //晶体的子程序,其中X,Y,Z为晶体三个方向的晶胞数
{
int i,j;
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;i++)
{for(j=0;j<4;j++)
*(*(p+i)+j)=c[i][j];}
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;i++) //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;}
return;
}
void c_qiu(float b[][4],int n) //求C60球指定位置坐标的子程序,x,y,z为指定的球心坐标
{
float k,l,m;
int i;
k=0;
l=0;
m=0;
for(i=0;i<n;i++) //求C60的原始球心
{k=k+b[i][1];
l=l+b[i][2];
m=m+b[i][3];}
k=k/n;
l=l/n;
m=m/n;
for(i=0;i<n;i++) //球心移到(x,y,z)处
{b[i][1]=b[i][1]+x-k;
b[i][2]=b[i][2]+y-l;
b[i][3]=b[i][3]+z-m;}
return;
}
void wadong(float a[][4],float (*p)[4]) //在晶体上挖去一个圆柱体
{int i;
p=a;
for(i=0;i<12*X*Y*Z;i++)
if(((*(*(p+i)+1)-x1)*(*(*(p+i)+1)-x1)+(*(*(p+i)+2)-y1)*(*(*(p+i)+2)-y1)-r*r)<=1e-6&&(*(*(p+i)+3))>h)
{*(*(p+i)+0)=0;
*(*(p+i)+1)=0;
*(*(p+i)+2)=0;
*(*(p+i)+3)=0;}
return;
}
void main()
{auto float (*p)[4]=NULL;
float a[12][4],b[60][4];
int i,j;
FILE *fp;
p=a;
printf("输入晶体个方向晶胞数:/n");
scanf("%d %d %d",&X,&Y,&Z);
printf("/n");
printf("输入所挖圆柱体的圆心、半径及高度:/n");
scanf("%f %f %f %f",&x1,&y1,&r,&h);
printf("/n");
printf("输入C60球指定的坐标:/n");
scanf("%f %f %f",&x,&y,&z);
printf("/n");
fp=fopen("jingbao.xyz","r+");
for(i=0;i<12;i++)
{for(j=0;j<4;j++)
fscanf(fp,"%f",&a[i][j]);
fprintf(fp,"/n");}
jingti(p,a); //调用晶体坐标的子程序
fp=fopen("C60.xyz","r+");
for(i=0;i<60;i++)
{for(j=0;j<4;j++)
fscanf(fp,"%f",&b[i][j]);
fprintf(fp,"/n");}
c_qiu(b,60); //调用求C60指定位置坐标的子程序,可任意设定球心位置
wadong(a,p); //调用挖洞的子程序,调用时可任意设定所挖圆柱体的位置和大小
fp=fopen("JINGTI.xyz","w+");
for(i=0;i<12*X*Y*Z;i++)
{for(j=0;j<4;j++)
fprintf(fp,"%10.6f",*(p++));
fprintf(fp,"/n");}
for(i=0;i<60;i++)
{for(j=0;j<4;j++)
fprintf(fp,"%10.6f",b[i][j]);
fprintf(fp,"/n");}
fclose(fp);
}
- 关于handled exception .exe:access violation的解决方法
- 奇怪的 unhandled exception in 0xc0000005 *.exe: access violation 错误
- 遇到"Unhandled exception in app.exe (QTGUID4.DLL): 0xC0000005: Access Violation"错误的解决过程
- 结构体指针未初始化引起的--Unhandled exception in XXX.exe:0xC0000005:Access Violation
- Unhandled exception in XX.exe:oxc0000005:access violation 错误调试
- unhandled exception in .exe :0xC0000005:Access Violation.
- unhandled exception in *.exe (MFC42D.DLL):0xC0000005:Access Violation
- Unhandled exception in XX.exe:0xC0000005:Access Violation”
- First-chance exception in MFCDibImshow.exe: 0xC0000005: Access Violation.
- Unhandled exception in ***.exe(OLE32.DLL):0xC0000005:Access Violation
- Unhandled exception in ***.exe(OLE32.DLL):0xC0000005:Access Violation
- MFC 子对话框退出导致主对话框也退出的原因:Unhandled exception in xxx.exe:0xC0000005:Access Violation
- Unhandled exception in XXX.exe(MFCO42D.dll)0xC00000005:Access Violation
- Unhandled exception at 0x00000000 in CallDll.exe: 0xC0000005: Access violation reading location 0x00
- 调试出错:Unhandled exception in aa.exe:0xC0000005:Access Violation
- Unhandled exception in MSDEV.EXE(DEVSHL.DLL) 0xC0000005 access violation
- MFC 类向导添加变量出错 Unhandled exception in snmp.exe:0xC0000005:Access Violation
- MFC调试出错:Unhandled exception in aa.exe:0xC0000005:Access Violation
- 开始写博客啦
- 学知网
- 存储过程(Stored Procedure)
- LInux笔记
- Apache的Mod_Rewrite模块设置
- 关于handled exception .exe:access violation的解决方法
- 一份比较详细的DOS命令说明!
- 印度英语特点汇总(汇总至各方)
- EmEditor 8.05 注册码
- 采用scp命令在Linux系统之间copy文件
- 岛
- 听了一节需求评审会
- VB.net+工厂方法模式+思考
- 1120 下标也能出大问题