2016-03-24 24 views
0

私は3次元の2倍の動的配列を持っています。私は別々に各次元の長さ(矩形でない配列)を設定し、それが必要なときにそれを変更するプログラムで多次元動的配列の格納

customArray : array of array of array of double 

。配列は、コンパクトなメモリ部に格納されている場合

は、私はそう一度writebuffer(customArray,sizeof(customArray)) 以降のような流れでそれを保存するために、これが可能である readbuffer(customArray, savedSize);

のように同じ動的配列になおすだろうか?

+0

各次元は連続したメモリブロックにあります。寸法はまばらです。 –

答えて

4

これは実際には多次元配列ではありません。これはjagged arrayとして知られています。最も内側の次元は連続していますが、外側の次元はポインタの配列です。

したがって、要素は連続して格納されません。連続した方法でそれらをファイルに書きたい場合は、各次元をループすることでそのファイルを整理する必要があります。

あろう擬似コードで

for i 
    for j 
    for k 
     write(arr[i,j,k]); 

最も内側の寸法は、このように書くことができる連続しているので:ギザギザの配列は、異なる長さのメンバーの配列を有することができるが、私は推測

for i 
    for j 
    write(arr[i,j]); 

配列に同じ長さのメンバーがすべて含まれていることを確認します。