【发布时间】:2013-11-20 09:37:01
【问题描述】:
我在分配指向结构的指针和指向结构的指针时遇到问题。 我使用的是 gfortran 4.6.3,文件名是 test_pointer_struct.f08,所以我使用的是 Fortran 2008 标准(由 gfortran 4.6.3 支持)。
赫拉来了代码:
PROGRAM test_pointer_struct
type tSmall
integer :: a
double precision :: b
end type tSmall
type tBig
integer :: h
type(tSmall), pointer :: member_small
end type tBig
type(tBig) :: var_big
type(tSmall), pointer :: var_small(:)
! We get an array of pointers to the small structure
allocate(var_small(3))
! Also allocate the member_small strucutre (not an array)
allocate(var_big%member_small)
var_big%member_small%a = 1
var_big%member_small%b = 2.0
! Now we want an element of the var_samall array of pointers, to point to the member_small in member_big
var_small(1) => var_big%member_small ! <- I get a compilation error here
! And dissasociate the member_small (we still maintain access to memory space through var_small(1)
var_big%member_small => NULL()
END PROGRAM test_pointer_struct
当我遵守这一点时,我收到以下错误: 错误:Se esperaba una especificación de límites para 'var_small' en (1) 可以翻译为 错误:“var_small”在 (1) 处的限制规范
这个错误是什么意思?我做错了什么?
非常感谢您。
【问题讨论】: