HEAP[R]: HEAP: Free Heap block 393820 modified at 393830 after it was freed
Windows 已在 R测试.exe 中触发一个断点。其原因可能是堆被损坏,这说明 R测试.exe 中或它所加载的任何 DLL 中有 Bug。原因也可能是用户在 R测试.exe 具有焦点时按下了 F12。输出窗口可能提供了更多诊断信息输出窗口可能提供了更多诊断信息。
R测试.exe 中的 0x7c949a63 处最可能的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
程序“[5656] R测试.exe: 本机”已退出,返回值为 1 (0x1)。
Windows 已在 R测试.exe 中触发一个断点。其原因可能是堆被损坏,这说明 R测试.exe 中或它所加载的任何 DLL 中有 Bug。原因也可能是用户在 R测试.exe 具有焦点时按下了 F12。输出窗口可能提供了更多诊断信息输出窗口可能提供了更多诊断信息。
R测试.exe 中的 0x7c949a63 处最可能的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
程序“[5656] R测试.exe: 本机”已退出,返回值为 1 (0x1)。
解决方案 »
- 如何理解下面这50行代码,谢一辈子, MIB_IFTABLE 是什么,?C++有相应变量吗
- MFC单文档如何插入ActiveX控件
- 属性页选项卡如果在左侧,文字如何实现横向显示?
- 问个诡异的问题: MAKEINTRESOURCE()
- 寻找网络视频监控软件的高手
- 如何通过点击一个按扭来改变另一个按扭的颜色,颜色rgb值在text中指定
- 有没有人能告诉我source safe怎么备份数据啊
- MFC 从CListCtrl继承了两个类,这两个类可以同时一起用于一个控件吗?
- 用vc到出access成txt文件
- win7 64位 msado15.dll 使用问题 兼容性问题
- 如何绘制带有alpha通道的图像(仅使用win32的API)?
- 有没有下面要求的opengl三维库啊
{
float e,*x,*y,*s,*r,*result,*b,*w,**M;
int k,nx,i,j,p;
long pos1;
FILE *fp_1;
FILE *fp_2;
FILE *fp_m; x=(float *)malloc(NT*sizeof(float));
y=(float *)malloc(NT*sizeof(float));
s=(float *)malloc(LF*sizeof(float));
r=(float *)malloc((NT+LF-1)*sizeof(float));
result=(float *)malloc(NT*sizeof(float)); M=new float*[LF];
for(i=0;i<NT+LF-1;i++)
M[i]=new float[LF]; if((fp_1=fopen("model.dat","rb"))==NULL)
{
printf("can not open file model\n");
exit(1);
} if((fp_2=fopen("mod.OUT","rb"))==NULL)
{
printf("can not open file mod\n");
exit(1);
}
if((fp_m=fopen("result.OUT","wb"))==NULL)
{
printf("can not open file result\n");
exit(1);
}
for(nx=0;nx<NX;nx++)
{ for(k=0;k<LF;k++)
s[k]=0; for(k=0;k<NT;k++)
x[k]=0; for(k=0;k<NT;k++)
y[k]=0; for(k=0;k<NT;k++)
result[k]=0; for(i=0;i<NT+LF-1;i++)
for(j=0;j<LF;j++)
M[i][j]=0; pos1=nx*NT*sizeof(float);
fseek(fp_1,pos1,SEEK_SET);
fread(x,sizeof(float),NT,fp_1); fseek(fp_2,pos1,SEEK_SET);
fread(y,sizeof(float),NT,fp_2); for(j=0;j<LF;j++)
{
p=0;
for(i=j;i<NT;i++)
M[i][j]=x[p++];
}
s[0]=1;
for(i=0;i<NT+LF-1;i++)
{
for(j=0;j<LF;j++)
r[i]=M[i][j]*s[j];
} for(i=0;i<NT;i++)
result[i]=r[i]; for(i=0;i<NT;i++)
result[i]=y[i]-result[i]; fwrite(result,sizeof(float),NT,fp_m); printf("----->%d\n",nx); } free(x);
free(y);
free(b);
free(s);
free(r);
free(result);
fclose(fp_1);
fclose(fp_2); for(i=0;i<NT;i++)
delete []M[i];}
好像是指向这里 if((fp_1=fopen("model.dat","rb"))==NULL)
没分配就free了?
if((fp_1=fopen("model.dat","rb"))==NULL)
{
printf("can not open file model\n");
exit(1); //文件不存在,则强行退出,则前面所有分配的内存都没有释放啊。
}