我已经使用C ++几年了。然后,我决定使用Fortran以获得更好的数学性能。在C ++中,我具有以下结构,可以在各处使用:
structure BitMap{
char* rgba; // pointer to the color array
int w, h;}; // dimension of my bitmap
另一方面,在Fortran中:
Program Bitmap_p
implicit none
type BitMap
character :: rgba(*) ! like a pointer to bitmap array (colors and alpha)
integer:: w ! bitmap width
integer:: h ! bitmap height
endtype BitMap
endprogram Bitmap_p
但是,在编译时,编译器指出:
- f90(4):错误#6530:此组件的数组规格必须为显式形状,并且每个边界都必须为初始化表达式。 [RGBA]
答案 0 :(得分:1)
您应该能够在fortran中使用TYPE
和POINTER
来完成C语言中的struct
和*
的操作。
Program Bitmap_p
implicit none
type BitMap
character, pointer :: rgba(:) ! like a pointer to bitmap array (colors and alpha)
integer:: w ! bitmap width
integer:: h ! bitmap height
endtype BitMap
type(BitMap) :: bmap
bmap%w = 10
bmap%h = 10
allocate( bmap%rgba(4*bmap%w*bmap%h) )
endprogram Bitmap_p