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