Fortran取消分配x函数 [英] Fortran Deallocate x function
本文介绍了Fortran取消分配x函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Toplam = 0.0
DO K = 1, N
Toplam = (Ort - X(K))**2
END DO ! bellek bloğu boşaltılıyor
DEALLOCATE(X)
Std_Sap = SQRT(Toplam/(N-1))
PRINT *,"Ortalama : ",Ort
PRINT *,"Standart sapma: ",Std_Sap END PROGRAM Ortalama
推荐答案
链接的问题When is array deallocating necessary?非常相关,我将尽量避免重复其中提出的观点,严格地回答主要问题&deallocate()
实际做什么?
allocate()
分配它们之前,它们实际上并不引用内存的任何部分。这种分配给它们提供了它们所占用的部分内存。此时,状态从未分配的";更改为已分配的";。(您可以使用allocated()
函数查询状态。)
如果您有一个已分配的可分配对象(例如可分配数组),则可以使用deallocate()
释放它。这种重新分配将从变量/数组中取回内存。变量现在是未分配的,并且不包含任何数据元素。它没有任何数组大小,您不能读写它,甚至不能打印size()
或shape()
,它只是没有分配而已。它不再指任何特定的内存。
您在您的问题中使用了单词&已删除&。内存可能不会被重写,并且存储在那里的值可以保留在那里。但它们不再属于该数组,并且内存可能会分配给其他可分配变量或指针变量。
如链接答案所示,在某些情况下,释放是自动执行的。
这篇关于Fortran取消分配x函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文