[c언어] 이중 포인터
C언어에서 이중 포인터란 무엇인가요? 이중 포인터는 메모리 주소를 저장하는 포인터를 가리키는 포인터입니다. 즉, 메모리 주소를 저장하는 포인터를 갖는 포인터입니다.
이중 포인터의 선언과 사용
int main() {
int num = 10;
int *ptr; // 포인터
int **dptr; // 이중 포인터
ptr = # // num의 주소를 포인터 ptr에 저장
dptr = &ptr; // ptr의 주소를 이중 포인터 dptr에 저장
printf("Value of num: %d\n", num);
printf("Value of num using single pointer: %d\n", *ptr);
printf("Value of num using double pointer: %d\n", **dptr);
return 0;
}
위 코드에서 int **dptr
은 이중 포인터를 선언하는 부분입니다. dptr
은 ptr
의 메모리 주소를 저장합니다. 즉, dptr
은 ptr
의 값을 갖는 포인터입니다.
이중 포인터의 활용
이중 포인터는 다차원 배열 및 동적 메모리 할당과 관련된 작업에서 주로 활용됩니다. 동적 메모리 할당을 통해 이중 포인터를 활용하여 필요한 만큼의 메모리를 동적으로 확보하고, 그 메모리 주소를 가리키는 포인터를 다시 다차원 배열에 할당할 수 있습니다.
요약
이중 포인터는 메모리 주소를 저장하는 포인터를 가리키는 포인터이며, 다차원 배열 및 동적 메모리 할당에서 유용하게 활용됩니다.
이중 포인터에 대한 자세한 내용은 K&R의 “The C Programming Language”나 “C Programming: A Modern Approach” 같은 책을 참고하시기 바랍니다.