如果我在Fortran中执行以下副本,则>
arr(i1:i2) = u(1:n)
其中
SIZE(arr(i1:i2)) == SIZE(u(1:n))
,并且大小相对较大,例如2M个双精度元素。
如果变量arr
是另一个可分配数组的指针别名。 Fortran会使用堆栈或堆内存来处理副本分配吗?
如果正在使用堆栈,那么选择该选项有什么具体原因吗?
[不必在Linux终端上运行ulimit -s unlimited
的情况下,如何避免使用堆栈的编译器不获得堆栈溢出??
如果我在Fortran arr(i1:i2)= u(1:n)中进行以下复制,其中SIZE(arr(i1:i2))== SIZE(u(1:n))并且大小是相对的大,例如2M的双精度元素。如果变量arr是一个...
如果变量是指针,则编译器几乎可以肯定使用堆栈为副本创建一个临时文件,因为它必须假定可能存在重叠。对于不连续的段,也可能不是简单的重叠,因此按不同顺序进行复制并非总是可行。