溫馨提示×

錯誤的fortran錯誤:可分配的數組已經分配

小云
156
2023-09-26 07:06:24
欄目: 編程語言

錯誤的fortran錯誤:可分配的數組已經分配

這個錯誤通常是因為在給已經分配的數組重新分配內存時出現的。在Fortran中,一旦一個數組被分配了內存,它的大小就是固定的,不能再重新分配。如果需要重新分配數組,可以使用另一個數組來存儲新分配的內存,并將原數組的值復制到新數組中。

下面是一個示例代碼,展示了如何在Fortran中正確分配和重新分配數組:

program array_allocation
implicit none
integer, parameter :: n = 5
integer, allocatable :: array1(:)
integer, allocatable :: array2(:)
! 分配數組
allocate(array1(n))
! 使用數組
array1 = [1, 2, 3, 4, 5]
print *, "Array 1:", array1
! 重新分配數組
allocate(array2(2 * n))
array2(1:n) = array1
deallocate(array1)
! 使用新數組
print *, "Array 2:", array2
! 釋放內存
deallocate(array2)
end program array_allocation

在這個示例中,首先分配了一個大小為n的數組array1。然后,將一些值賦給array1。接下來,使用allocate語句重新分配了一個大小為2 * n的數組array2,并將array1的值復制到array2中。最后,通過deallocate語句釋放了array2的內存。

請注意,在重新分配數組之前,必須使用deallocate語句釋放原數組的內存,然后再使用allocate語句分配新數組的內存。這是因為在Fortran中,分配給數組的內存是連續的,重新分配數組會導致原數組的內存失效。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女