Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 存储多维动态数组_Arrays_Delphi_Multidimensional Array_Dynamic Arrays - Fatal编程技术网

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]);

锯齿状数组可以有不同长度的成员数组,但我假定数组中的成员长度都相同

每个维度都在一个连续的内存块中。维度是稀疏的。每个维度都在一个连续的内存块中。维度是稀疏的。