求大神帮忙 vs2010中0x775a71b4 处有未经处理的异常: 0xC0000005: Access violation

LIHANG01234 2015-11-11 10:09:16
CRect rect;

float a[2000];
int i;
int j;
CString str;

FILE *file;


file =fopen("F:\\data2.txt","r");
for(i=0;i<2000;i++)
{
fscanf(file,"%f,",&a[i]);
}

//倒序的实现
int M =2048;
int NV2=M/2;
int NM1=M-1;
int I,J,K=0;
float T;
I=J=1;
while(I<=NM1)
{
if(I<J)
{
T = a[J-1];//将A[J-1]的内容和A[I-1]的内容互换,借助于中间变量T
a[J-1]=a[I-1];
a[I-1]=T;
}
K=NV2;
while(K<J)
{
J-=K;
K/=2;
}
J+=K;
I++;
}





//FFT
Complex U,W,V,B[2050];
int LE,LE1,IP;
int N=(int)pow(2,float (11));
{ for(i=0;i<2000;i++)
B[i].Re =a[i];
B[i].Im =0.0;
}


float L=1;
while(L<=11)
{
LE=(int)pow(2,L);
LE1=LE/2;
U.Re=1.0f;
U.Im=0.0f;
W.Re=(float)cos(PI/(1.0*LE1));//计算W算子的值
W.Im=(float)-1.0*sin(PI/(1.0*LE1));
if(abs(W.Re)<1.0e-12)
W.Re=0.0f;
if(abs(W.Im)<1.0e-12)
W.Im=0.0f;
J=1;
while(J<=LE1)
{
I=J;
while(I<=N)
{
IP=I+LE1;
V.Re=(float)B[IP-1].Re*U.Re-B[IP-1].Im*U.Im;//计算复数运算A*U
V.Im=(float)B[IP-1].Re*U.Im+B[IP-1].Im*U.Re;
B[IP-1].Re=(float)B[I-1].Re-V.Re;//计算复数运算A-T
B[IP-1].Im=(float)B[I-1].Im-V.Im;
B[I-1].Re+=V.Re;//计算复数运算A+T
B[I-1].Im+=V.Im;
I+=LE;
}
float temp=U.Re;
U.Re=(float)U.Re*W.Re-U.Im*W.Im;//计算复数运算U*W
U.Im=(float)temp*W.Im+U.Im*W.Re;
J++;
}
L++;
}




for(j=0;j<2000;j++)
{ dc.MoveTo(B[j].Re,B[j].Im);


dc.LineTo(B[j+1].Re,B[j+1].Im);

}



fclose(file);
...全文
45 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2015-11-11
  • 打赏
  • 举报
回复
直接单步调试,一般是指针等操作有问题

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧