主题:请高手帮忙看看这个程序为什么会数组越界?
主程序
------------------------------------------------
program main
use array
implicit none
integer,allocatable::a(:)
integer::num
integer::i
call arrayin(a,num)
write(*,*) num
do i=1,num
write(*,*) a(i)
end do
end program main
----------------------------
子程序
----------------------------
module array
contains
subroutine arrayin(a,num)
implicit none
integer::num
integer,allocatable::a(:)
integer::i
write(*,*)"input the length of the array"
read(*,*) num
allocate(a(1:num))
write(*,*)"input each element of the array"
do i=1,num
read(*,*) a(i)
end do
end subroutine
end module
--------------------------------------------------
这只是个示例。比如输入num=3,然后输入三个数,最后输出时确实数组越界,请问高手为什么会这样。
------------------------------------------------
program main
use array
implicit none
integer,allocatable::a(:)
integer::num
integer::i
call arrayin(a,num)
write(*,*) num
do i=1,num
write(*,*) a(i)
end do
end program main
----------------------------
子程序
----------------------------
module array
contains
subroutine arrayin(a,num)
implicit none
integer::num
integer,allocatable::a(:)
integer::i
write(*,*)"input the length of the array"
read(*,*) num
allocate(a(1:num))
write(*,*)"input each element of the array"
do i=1,num
read(*,*) a(i)
end do
end subroutine
end module
--------------------------------------------------
这只是个示例。比如输入num=3,然后输入三个数,最后输出时确实数组越界,请问高手为什么会这样。