Multiple allocation, smart pointer in Fortran Wiki
Smart pointers as an extension of allocatable variables. Basically the same memory area is referenced by different variables but get automatically deallocated only when no smart pointers reference it any more. The real deallocation is performed only when all the smart pointers pointing to it are deallocated (or get out of scope). A keyword as "multiallocatable" may be used plus a function like add_alloc that add an allocation to a multiallocatable variable. For example ` TYPE(xxx), multiallocatable :: vara, varb !` two variables declared multiallocatable `allocate(vara)` the first variable is allocated `call add_alloc(vara, varb) !` now `vara` and `varb` point to the same area and are alias `deallocate(vara) !` `vara` is now deallocated but `varb` is still valid and allocated `deallocate(varb) !` only now the memory is really deallocated given back to the operating system (or the memory pool of the compiler) ready for other allocations.
AltStyle
によって変換されたページ
(->オリジナル)
/
アドレス:
モード:
デフォルト
音声ブラウザ
ルビ付き
配色反転
文字拡大
モバイル