我正在製作一個將十進制整數轉換爲二進制表示的程序。這裏是我的代碼: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'語句來實際保留空間。 –