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