일반 적인 2차 배열 동적 할당
코드:
template <typename Ty> Ty **alloc2DArray(int width, int height) { Ty **arr = new Ty*[height]; for(int i=0; i<height; i++) { arr[i] = new Ty[width]; } return arr; } template <typename Ty> void free2DArray(Ty **&arr, int height) { for(int i=0; i<height; i++) { delete []arr[i]; arr[i] = 0; } delete []arr; arr = 0; } |
고급
int **imatrix( int w, int h ) { int i; int **m; m = new int * [h]; if( !m ) PutError("memory alloc failure in imatrix()"), exit(0); m[0] = new int [ w * h ]; if( !m[0] ) PutError("memory alloc failure in imatrix()"), exit(0); for( i = 1; i < h; i++ ) { m[i] = &m[0][ i * w ]; } return m; } |
고급으로 할당 하는 방법에 대해서 눈여겨 보세요.