C++で2次元配列を動的に(その2)
段々違和感なく見ていられるようになったかな。
#include <iostream> using namespace std; // 2次元配列を動的に確保 template< typename T > T **newDim2Array( size_t row, size_t column ) { T **array = new T*[row]; for( int i = 0; i < (int)row; ++i ) array[i] = new T[column]; return array; } // 2次元配列を解放 template< typename T > void deleteDim2Array( T **ppArray ) { delete [] *ppArray; delete [] ppArray; } int main() { // 行と列の数を入力 int row=0, column=0; cout << "行の数を入力 >"; cin >> row; cout << "列の数を入力 >"; cin >> column; // 2次元配列を生成 int **array = newDim2Array<int>( row, column ); // 代入 int count = 0; for( int i = 0; i < row; ++i ) for( int j = 0; j < column; ++j ) { array[i][j] = count; ++count; } // 表示 for( int i = 0; i < row; ++i ) { for( int j = 0; j < column; ++j ) cout << array[i][j] << " "; cout << endl; } // 2次元配列を解放 deleteDim2Array( array ); return 0; }