我正在制作一个将十进制整数转换为二进制表示的程序。这里是我的代码:Fortran 90 - 分段错误
program test
implicit none
integer, dimension(:), allocatable :: binary
integer :: decimalnum, i, initvalue
print*, "Enter decimal number to convert: "
read*,initvalue
decimalnum = initvalue
i = 0
do while (decimalnum > 0)
if (MOD(decimalnum,2)==0) then
binary(i) = 0 ! this is as far as the program executes up to
decimalnum = decimalnum/2
i = i + 1
else if (MOD(decimalnum,2)==1) then
binary(i) = 1
decimalnum = (decimalnum -1)/2
i = i + 1
end if
end do
end program test
在标记点,则返回错误Segmentation fault
与代码139
为什么会发生这种情况退出?
在此先感谢。
你有访问一个'调试'?这样的gdb – Jack
不,我不知道如何使用一个 – Progrmr
我真的不太了解Fortran,但我只是查找'allocatable',看起来你仍然需要一个'allocate'语句来实际保留空间。 –