24小时热门版块排行榜    

查看: 581  |  回复: 3

jiangjian

新虫 (小有名气)

[求助] Fortran 语言的一个问题 (很诡异)

以下是我MC程序的两行代码:            
                     write(*,*)
                     Call Mccbmc(Movecb,Acccb,Etot)

当去掉 write(*,*) 这一行时,运行时显示"Segmentation fault"。当保留这一行时,程序就能顺利执行完成。 然后这一行本就没有任何意义,只是输出一个空格键而已。 希望有高手帮忙解决啊! 特此悬赏15金币!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


御剑江湖(金币+1): 谢谢 2011-06-29 10:55:09
jiangjian(金币+4): 谢谢你的回复,其实是内存调用出问题了,引用未对其造成的,我今天找了一天,终于找到原因了。不过还是很谢谢你。 2011-06-29 19:00:01
肯定有一些变量未赋初始值……
2楼2011-06-29 10:42:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

★ ★ ★ ★
御剑江湖(金币+4): 谢谢 2011-06-29 18:54:10
我也觉得很可能是变量初值问题。特别是数组。另外,我有一次定义数组的时候,一维数组(1:N),我写成了(1,N),成了二维数组,结果搞起来就有类似你这样的诡异现象。用g95编译说Segmentation fault",用ifort竟然可以运行,但结果又明显不对。。
3楼2011-06-29 14:40:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jiangjian

新虫 (小有名气)

引用回帖:
Originally posted by 老虎大王 at 2011-06-29 14:40:27:
我也觉得很可能是变量初值问题。特别是数组。另外,我有一次定义数组的时候,一维数组(1:N),我写成了(1,N),成了二维数组,结果搞起来就有类似你这样的诡异现象。用g95编译说Segmentation fault",用if ...

给不了你金币,网页显示不是应助,虽然不是数组越界或者参数未定义的原因,但是还是谢谢你。是子程序调用未匹配的原因。
4楼2011-06-29 19:01:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jiangjian 的主题更新
信息提示
请填处理意见