我是Fortran的新手。我的问题是为什么我们需要Fortran中的可分配数组?我知道一个好处是你不需要事先知道尺寸。但是还有性能原因吗?
例如,在使用该数组之后将来不再重用,我们将释放该数组。与不使用可分配数组(即常规数组)相比,这种解除分配有助于释放更多内存吗?
答案 0 :(得分:3)
可分配阵列有两个目的:
如果没有可分配的数组,则必须选择足够大的静态数组大小以适应任何可能的大小,这意味着在大多数情况下,您将使用远远超过必要的内存。如果您错误判断了可能的大小,则需要更改代码并重新编译。
静态数组也会在它们在范围内的整个持续时间内消耗它们的内存,因此对于主程序中的数组来说,这将是整个运行时。如果你不再需要它们,可以(并且应该)释放可分配的数组,以便最大限度地减少内存使用。
(在可分配数组之前,你可以使用public void getData(Callback<List<Result>> response);
语句来创建不同的变量,如果你知道你不会同时需要它们,那么数组会使用相同的物理内存。)
答案 1 :(得分:2)
我知道我不应该......但是
...我们不需要任何可分配的可分配数组,我们编程 没有他们的FORTRAN已有35年......只需将64K的RAM拿到一个 静态数组,我们将自己做内存管理,非常感谢 很多......
[穿着夹克咆哮,嘴里发泡。]