📄 subject_49376.htm
字号:
<p>
序号:49376 发表者:萧一郎 发表日期:2003-08-09 20:44:02
<br>主题:变量超出取值范围,是否会导致内存不足情况(愿意多给分)
<br>内容:请问我用的代码中,是否有变量超出了取值范围,或是太大不能计算,这种情况下会弹出内存不足的对话框吗,如果不是,要怎么修改呢,如果是,怎么捕捉不能计算的acceleration和magnitude的组合呢?<BR>double CSeismicRiskAnaSysView::_GetRadius(A_ATTENUATION attenuation, double acceleration, double magnitude)<BR>{<BR> double radius=ZERO_MAX_DBL;//正零值<BR> double r0=attenuation.c5*exp(attenuation.c6*magnitude);//定义近场距离饱和因子<BR> double expon=(log10(acceleration)-attenuation.c1-attenuation.c2*magnitude-attenuation.c3*pow(magnitude,2))/attenuation.c4;<BR>//这段代码加了就不弹出内存不足对话框了<BR> //if((acceleration>100 && magnitude<5.5)||(acceleration>500 && magnitude<6.0))<BR> //radius=ZERO_MAX_DBL;<BR> //else<BR> radius=pow(10,expon)-r0; <BR> return radius;<BR> <BR>}<BR>其中<BR>typedef struct<BR> {<BR> double c1;<BR> double c2;<BR> double c3;<BR> double c4;<BR> double c5;<BR> double c6;<BR> double c7;<BR> double error;<BR> }A_ATTENUATION;<BR>各项的取值为<BR> attenuation.error = 0.0;<BR> attenuation.c7 = 0.0;<BR> attenuation.c6 = 0.797;<BR> attenuation.c5 = 0.118;<BR> attenuation.c4 = -1.655;<BR> attenuation.c3 = -0.067;<BR> attenuation.c2 = 1.585;<BR> attenuation.c1 = -2.331;<BR>变量acceleration从1到600,magnitude从4到10做循环,怎么循环中总是出现内存不足,让关闭进程,请问是怎么回事情<BR>2003-8-9 20:44:45
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -