多次元配列を new/delete で動的メモリ確保する方法

イメージがつかめた.後の例は次元ごとに new/delete している.

Re: newでの二次元配列 by Gimite 2005年8月24日 21:28

2つ方法があります。

int (*a)[3]= new int[2][3];
//ここで配列を使う
delete[] a;

または

int** a= new int*[2];
for (int i= 0; i<2; ++i)
  a[i]= new int[3];
//ここで配列を使う
for (int i= 0; i<2; ++i)
  delete[] a[i];
delete[] a;

使うときはどちらも普通にa[1][2]とかで参照できます。

後者の方法は2次元配列というより「配列(へのポインタ)の配列」です。なので、a[0]は3要素だけどa[1]は4要素、とかもできます。

http://gimite.net/bcbqtree/qtreemain.cgi?mode=thread&thread=424