[c++] C++에서 2차원 배열 동적 할당

C++에서 2차원 배열을 동적으로 할당하려면 포인터를 사용해야 합니다. 2차원 배열을 동적으로 할당하는 방법은 여러 가지가 있지만, new 연산자를 사용하는 방법을 다루어 보겠습니다.

기본 예제

다음은 2차원 배열의 동적 할당과 해제를 보여주는 간단한 예제입니다.

#include <iostream>
using namespace std;

int main() {
    int row, col;

    cout << "행과 열의 수를 입력하세요: ";
    cin >> row >> col;

    int **arr = new int*[row];

    for (int i = 0; i < row; i++) {
        arr[i] = new int[col];
    }

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

    for (int i = 0; i < row; i++) {
        delete[] arr[i];
    }

    delete[] arr;
    
    return 0;
}

위의 예제에서는 먼저 int 형식의 이차원 배열을 가리키는 이중 포인터 arr을 생성합니다. 그런 다음 각 행에 대해 새로운 int 배열을 동적으로 할당하고, 값을 저장한 후 메모리를 해제합니다.

동적 메모리 할당 해제

2차원 배열을 동적으로 할당했을 때, 반드시 각 차원마다 할당된 메모리를 해제해주어야 합니다. 위의 예제에서는 delete[] 연산자를 사용하여 이를 처리하였습니다.

이처럼 C++에서 2차원 배열을 동적 할당할 때에는 메모리 누수를 방지하기 위해 메모리 할당과 해제가 정확히 이루어져야 합니다.

참고 자료

2차원 배열의 동적 할당과 해제는 메모리 관리에 있어 중요한 부분이기 때문에, 적절한 자원 관리를 위해 필요한 정보를 참고하여 프로그래밍하시기 바랍니다.