| 查看: 374 | 回复: 4 | ||
[求助]
【求助】vs2010为什么会出现以下错误呀?已有1人参与
|
baghnac
金虫 (小有名气)
- 应助: 14 (小学生)
- 金币: 1706.4
- 红花: 6
- 帖子: 177
- 在线: 44小时
- 虫号: 1365578
- 注册: 2011-08-11
- 性别: GG
- 专业: 宇宙学
【答案】应助回帖
★
感谢参与,应助指数 +1
daily_7: 金币+1, ★有帮助 2015-11-16 14:34:03
感谢参与,应助指数 +1
daily_7: 金币+1, ★有帮助 2015-11-16 14:34:03
|
代码不够完整 从提示来看,是访问非法地址(0x000000000)了,代码没全,仅作部分分析 for(i=0;i<l1;i++)for(j=0;j<m1;j++)for(k=0;k<n1;k++){voi[j][k]=1.0;cell[j][k]=0;} 这里里 voi[j][k] = 1.0 voi[j][k] 这里改变了这个指针的值,指向0x00000001 所以在voi[cx][cy][cz]所用时,可能就访问的是0x00000001的地址,如果voi是int型的,且cz=1,那访问的就是图中的0x00000005这个非法访问地址 |

2楼2015-11-16 12:31:43
|
for(m=0;m<save;m++) { tnow+=dts;//当前时间值 //-----------------接触力和矩初始化-------------------------------------------- for(i=0;i<nu;i++){fxp=fyp=fzp=0;mx=my=mz=0;} //-----------------计算空隙率-------------------------------------------------- for(i=0;i<l1;i++)for(j=0;j<m1;j++)for(k=0;k<n1;k++){voi[j][k]=1.0;cell[j][k]=0;} for(i=0;i<nu;i++) { printf("%d.",m); cx=(int)(px/dx)+1;cz=(int)(pz/dz)+1;cy=1;//cy=(int)(py/dy)+1;//当前颗粒所在网格 printf("%d,%d,%d,%f,%f,%f\n",cx,cy,cz,px,py,pz); voi[cx][cy][cz]-=(4*pi*r[pk]*r[pk]*r[pk]/3/vol);//pk:i颗粒的种类 ini=cell[cx][cy][cz];cpn[cx][cy][cz][ini]=i;cell[cx][cy][cz]++;//cell[][][]该网格内的颗粒数 cpn[][][][]第i个颗粒在该网格的序号为ini printf("ini=%d",ini); if(cell[cx][cy][cz]==(1+CM)) { printf("cell_n is too full!\n该网格内颗粒数=%d\tcx=%d\tcy=%d\tcz=%d\n",cell[cx][cy][cz],cx,cy,cz); exit(0); } } // for(i=8;i<13;i++)for(j=1;j<3;j++)for(k=8;k<15;k++)voi[j][k]=(float)0.3; //-----------------碰撞计算---------------------------------------------------- ac(); //-----------------计算流体力-------------------------------------------------- if(tnow>tt)//tt为投颗粒过程,开始进风时间 { fluidf(); for(i=0;i<nu;i++) { fxp+=fxf; fyp+=fyf; fzp+=fzf; } } } |
3楼2015-11-16 14:09:07
4楼2015-11-16 14:11:38
5楼2015-11-16 14:33:42













回复此楼