57. C++ 다중 포인터

57. C++ 다중 포인터 (int**)

1. 개요

1.1 문서 개요

이 문서는 C++에서 int**와 같은 다중 포인터(Multiple Pointer)의 개념과 활용 방식에 대해 설명합니다. 포인터를 가리키는 포인터는 주로 포인터 배열 처리, 2차원 배열 구현, 메모리 동적 할당 및 함수에서 포인터 값을 수정할 때 사용됩니다.

2. 내용

2.1 다중 포인터의 기본 개념

2.1.1 정의

int**int* 타입의 포인터를 가리키는 포인터입니다.

int a = 5;
int* p = &a;
int** pp = &p;

2.1.2 사용 예

std::cout << **pp << std::endl; // 5 출력

2.2 함수 인자로서의 다중 포인터

함수에서 포인터 자체를 변경하기 위해 이중 포인터를 사용합니다.

void allocate(int** ptr) {
    *ptr = new int;
    **ptr = 100;
}

2.3 다중 포인터를 이용한 2차원 배열

int** matrix = new int*[rows];
for(int i = 0; i < rows; ++i)
    matrix[i] = new int[cols];

2.4 메모리 해제

for(int i = 0; i < rows; ++i)
    delete[] matrix[i];
delete[] matrix;

3. 마무리

다중 포인터는 포인터를 간접적으로 조작하거나 다차원 배열을 동적으로 생성할 때 유용합니다. 구조에 대한 명확한 이해와 함께 동적 메모리 관리가 필수적이며, 메모리 누수 및 접근 오류를 방지하기 위한 세심한 구현이 요구됩니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤