new와 delete, c언어의 malloc과 free와 개념은 똑같다.
사용법에 대해서는 소스 코드를 참조.
#include <iostream>
#define HEIGHT 3
#define WIDHT 4
#define PLANE 2
void main()
{
// 2차원
int **p;
int cnt = 0;
// 할당
p = new int*[HEIGHT];
for( int i=0; i<HEIGHT; i++ )
{
p[i] = new int[WIDHT];
}
for( int i=0; i<HEIGHT; i++ )
{
for( int j=0; j<WIDHT; j++ )
p[i][j] = cnt++;
}
// 삭제
for( int i=0; i<HEIGHT; i++ )
{
delete [] p[i];
}
delete [] p;
// 3차원
int ***p2;
cnt=0;
// 생성 후 간단한 값 입력
p2 = new int**[PLANE];
for( int i=0; i<PLANE; i++ )
{
p2[i] = new int*[HEIGHT];
for( int j=0; j<HEIGHT; j++ )
{
p2[i][j] = new int[WIDHT];
for( int k=0; k<WIDHT; k++ )
{
p2[i][j][k] = cnt++;
}
}
}
// 출력
for( int i=0; i<PLANE; i++ )
{
for( int j=0; j<HEIGHT; j++ )
{
for( int k=0; k<WIDHT; k++ )
{
std::cout << "p[" << i << "]" << "[" << j << "]" << "[" << k << "] = " <<p2[i][j][k] << std::endl;
}
std::cout << std::endl;
}
}
// 삭제
for( int i=0; i<PLANE; i++ )
{
for( int j=0; j<HEIGHT; j++ )
{
delete [] p2[i][j];
}
delete [] p2[i];
}
delete [] p2;
}
'프로그래밍 > C++' 카테고리의 다른 글
class(클래스) ~ C++의 꽃 ~ (0) | 2010.03.19 |
---|---|
레퍼런스(Reference) (0) | 2010.03.18 |
const 상수화 (0) | 2010.03.17 |
namespace(이름 공간) (0) | 2010.03.15 |
inline 함수 (0) | 2010.03.15 |