Arrays 存储多维动态数组
我有一个动态的三维双数组Arrays 存储多维动态数组,arrays,delphi,multidimensional-array,dynamic-arrays,Arrays,Delphi,Multidimensional Array,Dynamic Arrays,我有一个动态的三维双数组 customArray : array of array of array of double 在程序中,我分别设置每个维度的长度(不是矩形数组),并在需要时进行更改 我想知道数组是否存储在一个紧凑的内存部分,以便立即将其保存在流中,如writebuffer(customArray,sizeof(customArray)) 然后,再次将其加载到相同的动态数组,如 readbuffer(customArray,savedSize) 这可能吗 这实际上不是一个多维数组。这
customArray : array of array of array of double
在程序中,我分别设置每个维度的长度(不是矩形数组),并在需要时进行更改
我想知道数组是否存储在一个紧凑的内存部分,以便立即将其保存在流中,如writebuffer(customArray,sizeof(customArray))
然后,再次将其加载到相同的动态数组,如
readbuffer(customArray,savedSize)代码>
这可能吗 这实际上不是一个多维数组。这就是我们所知道的一个问题。最内部的维度是连续的,但外部维度是指针数组
因此,元素不是连续存储的。如果您希望以连续方式将它们写入文件,则需要通过在每个维度上循环来安排它们
在伪代码中,将是:
for i
for j
for k
write(arr[i,j,k]);
由于最里面的维度是连续的,因此可以写成:
for i
for j
write(arr[i,j]);
锯齿状数组可以有不同长度的成员数组,但我假定数组中的成员长度都相同 这实际上不是一个多维数组。这就是我们所知道的一个问题。最内部的维度是连续的,但外部维度是指针数组
因此,元素不是连续存储的。如果您希望以连续方式将它们写入文件,则需要通过在每个维度上循环来安排它们
在伪代码中,将是:
for i
for j
for k
write(arr[i,j,k]);
由于最里面的维度是连续的,因此可以写成:
for i
for j
write(arr[i,j]);
锯齿状数组可以有不同长度的成员数组,但我假定数组中的成员长度都相同 每个维度都在一个连续的内存块中。维度是稀疏的。每个维度都在一个连续的内存块中。维度是稀疏的。