728x90
728x90

2차원 배열 동적 할당 방법 (new 연산자)

들어가며

  • C++에서 new 연산자를 이용하여 쉽게 2차원 배열을 동적 할당할 수 있다.

 

방법

동적 할당

int **ary;
// 2차원 배열 동적 할당
ary = new int*[row];
for (int i = 0; i < col; i++) {
ary[i] = new int[i];
}

 

동적 할당 해제

// 2차원 배열 동적 할당 해제
for (int i = 0; i < col; i++) {
delete[] ary[i];
}
delete[] ary;

 

예제

#include <iostream>
using namespace std;
int row, col, **ary;
void Input(int **a, int r, int c) {
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
cin >> a[i][j];
}
}
cout << endl;
}
void Output(int **a, int r, int c) {
cout << "[" << r << " × " << c << " Array]" << endl;
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
}
int main() {
cout << "Row : ";
cin >> row;
cout << "Column : ";
cin >> col;
// 2차원 배열 동적 할당
ary = new int*[row];
for (int i = 0; i < col; i++) {
ary[i] = new int[i];
}
// 2차원 배열에 입력 받기
Input(ary, row, col);
// 2차원 배열 출력 하기
Output(ary, row, col);
// 2차원 배열 동적 할당 해제
for (int i = 0; i < col; i++) {
delete[] ary[i];
}
delete[] ary;
return 0;
}
Row : 5
Column : 5
1 2 3 4 5
6 7 8 9 8
9 8 7 6 5
4 3 2 1 0
1 2 3 4 5
[5 × 5 Array]
1 2 3 4 5
6 7 8 9 8
9 8 7 6 5
4 3 2 1 0
1 2 3 4 5

 

(참고) 1차원 배열 동적 할당 방법

  • 1차원 배열은 다음과 같이 간단하게 동적 할당을 할 수 있다.
int *ary;
// 1차원 배열 동적 할당
ary = new int[size];
728x90
728x90

2차원 배열 동적 할당 방법 (new 연산자)들어가며방법동적 할당동적 할당 해제예제(참고) 1차원 배열 동적 할당 방법