我正在使用gfortran 5.4.1和ifort 17.0.1进行编译
在以下代码中:
program check
implicit none
real, dimension(:), allocatable :: hello
real :: g,h,i
allocate(hello(5))
g = hello(1)
h = g + 10.0
i = hello(2)*5
print *, hello,g,h
end program check
我们分配hello数组,但从不初始化它。然后我们使用这个未初始化的数组来设置一个值,进行两次计算,然后将它们全部打印出来。
在我看来,这一切都不行。什么是你好(1)?从执行代码开始,整个数组被设置为零。此外,我怎么能找到错误?当我使用-Wall(gfortran)和-warn uninitialized -O0(ifort)进行编译时,代码运行并编译正常。
任何人都知道我错过了什么?