小编use*_*489的帖子

在Fortran中使用具有多级分配的锯齿状数组是否有任何问题?

在我的Fortran代码中,我想使用具有多级分配的锯齿状数组.我的意思是一个示例代码

module nonsquare_matrix_mod
implicit none

   type :: nonsquare_matrix 
      integer :: d
      real*8, dimension(:), allocatable :: vector
   end type nonsquare_matrix

   type(nonsquare_matrix),dimension(:),allocatable :: mymatrix

end module nonsquare_matrix_mod

program nonsquare_matrix_test
   use nonsquare_matrix_mod
   implicit none

integer, parameter :: max_size=50
integer :: i

allocate(mymatrix(max_size))
do i=1,max_size
    allocate(mymatrix(i) % vector(i))
end do

print *, "allocated"


end program
Run Code Online (Sandbox Code Playgroud)

我想实现这种编程策略以节省内存.我知道这个例子中保存的内存不是太大,但对于我的实际项目,我正在使用更大的数据结构.我想知道这种编程习惯是否存在任何危险,例如数据没有连续存储或者更容易出现内存泄漏.或者这是一种节省内存而没有很多缺点的有用方法吗?谢谢.

fortran allocation jagged-arrays

5
推荐指数
1
解决办法
769
查看次数

标签 统计

allocation ×1

fortran ×1

jagged-arrays ×1