1차원 배열 동적할당

int * arr = new int[5]; //크기가 5인 일차원 배열 동적할당

1차원 배열 동적할당은 pointer를 활용하여 배열의 주소를 넣어주면 된다.

2차원 배열 동적할당

Untitled

  1. 2차원 배열은 이중 포인터를 활용한다.
  2. arr 변수에는 pointer값을 요소로 가지는 배열의 주소를 이중 포인터로 3개(행 개수) 저장한다.
  3. arr 배열의 요소는 각각 길이가 4인(열 길이) 배열의 주소를 저장한다.
int** arr = new int*[3]; //행의 크기가 3인 이차원 배열

for(int i=0; i<3; i++) //각각의 행에 길이가 4인 배열을 할당
	arr[i] = new int[4];

Vector를 활용한 2차원 배열

vector<int> v(10,0); // 10개의 원소를 0으로 초기화
vector<vector<int>> v(10, vector<int>(10,0)); // 10개의 원소를, 또 다시 벡터로 초기화

3차원 배열 동적할당

int*** arr = new int** [21];
	for (int i = 0; i < 21; i++) {
		arr[i] = new int* [21];
	}
	for (int i = 0; i < 21; i++) {
		for (int j = 0; j < 21; j++) {
			arr[i][j] = new int[21];
		}
	}

변수와 배열의 자동 초기화