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
'Programming > C++' 카테고리의 다른 글
[C++] 2차원 배열을 특정 값으로 초기화 하는 방법 (0) | 2023.01.26 |
---|---|
[C++] multiset(중복 집합) (0) | 2022.11.09 |
[C++] set(집합) (0) | 2022.11.08 |
[C++] multimap(멀티 맵) (0) | 2022.11.08 |
[C++] unordered_map (0) | 2022.11.08 |
[C++] map(맵) (0) | 2022.11.08 |
[C++] pair(페어)와 tuple(튜플) (0) | 2022.11.03 |
[C++] lower_bound(), upper_bound() ; 이진 탐색(Binary Search) (0) | 2022.11.01 |