以前のリビジョンの文書です
====== 配列 ====== ---- ===== 動的メモリ確保・解放 ===== === 1次元配列 === <code cpp> ////////// 確保 ////////// double *array1; int n1 = 10; array1 = new double[n1]; ////////// 解放 ////////// delete[] array1; </code> === 2次元配列 === 一度に確保できるのは1次元までなので、1次元ずつ確保していく。 解放も同様に1次元ずつ。 <code cpp> ////////// 確保 ////////// double **array2; int n1 = 10; int n2 = 20; array2 = new double*[n1]; for(int i = 0 ; i < n1 ; ++i){ array2[i] = new double[n2]; } ////////// 解放 ////////// for(int i = 0 ; i < n1 ; ++i){ delete[] array2[i]; } delete[] array2; </code> === 3次元配列 === 2次元と同様。 <code cpp> ////////// 確保 ////////// double ***array3; int n1 = 10; int n2 = 20; int n3 = 20; array3 = new double**[n1]; for(int i = 0 ; i < n1 ; ++i){ array3[i] = new double*[n2]; for(int j = 0 ; j < n2 ; ++j){ array3[i][j] = new double[n3]; } } ////////// 解放 ////////// for(int i = 0 ; i < n1 ; ++i){ for(int j = 0 ; j < n2 ; ++j){ delete[] array3[i][j]; } delete[] array3[i]; } delete[] array3; </code>