假設我們定義爲10種000派生類型的數組:內存佔用
TYPE type1
integer :: i
real, dimension(:), allocatable :: real_array
END TYPE1
和
type(type1), dimension(1000) :: big_array
現在,我們已經在主程序下面的語句:
DO j=1,10
allocate(big_array(j)%real_array(100))
END DO
從部件11到部件big_array
1000中,real_array
是可分配的,但未分配,因爲我不需要它。 (我以前十個組件爲例,但它可以是任何下標)
這是內存使用情況/管理/效率問題嗎? 「未使用/未分配的可分配數組」的內存佔用是多少?
如果我理解正確的話,通過聲明明確形'big_array' type1'的',我創建1000個三分球/ real_array'的'描述符(可忽略千字節我同意,但是他們都存在),但這些指針不除了前10個指向由'allocate'語句指定的分配內存空間之外的引用,我正確嗎? – Coriolis
是的,你是正確的,描述符在那裏,但它們被標記爲未分配/不指向任何地方。 –
最後,關於「隨機」存儲的答案的第一部分更具體一點,你的意思是說,每個「real_array」的組件都是非連續存儲的?通過聲明顯式形狀數組big_array,它的組件是否連續存儲? – Coriolis