반응형
1차원 배열을 담기 위해서 포인터를 사용할 수 있다.
그럼 2차원 배열을 담기 위해 이중 포인터를 사용하면 된다? -> X
2차원 배열을 포인팅 하기 위해 '배열 포인터' 라는 개념이 필요하다.
int arr[2][3] = // 배열의 선언
{
{10, 20, 30},
{40, 50, 60}
};
int (*pArr)[3] = arr; // 배열 포인터의 선언
printf("%d\n", arr[1][1]); // 배열 이름으로 참조
printf("%d\n", pArr[1][1]); // 배열 포인터로 참조
http://tcpschool.com/c/c_pointerArray_arrayPointer
https://dojang.io/mod/page/view.php?id=312
http://pelex529.blogspot.com/2009/01/2.html
참고로, 처음부터 이중 포인터를 선언하고 거기에 동적할당으로 이차원 배열을 사용하는건 가능하다. 이는 별개인 것을 알고 가야 한다.
기존의 배열을 포인팅하는것과, 새로 배열을 만드는 것은 다르다.
또는 더 정확하게는, 이중 포인터는 본디 '포인터의 포인터' 이기 때문에
포인터 변수를 포인팅 하는데 쓰이는 것이다. 이런 흐름이기에 저렇게 구성될 수 밖에 없다.
반응형
'[C++]' 카테고리의 다른 글
[C++] 구조체와 포인터 (0) | 2021.06.22 |
---|---|
[C++] 포인터 배열 (0) | 2021.06.22 |
[C++] 포인터 연산 (0) | 2021.06.22 |
[C++] 2진수, 8진수, 10진수, 16진수 표현 (0) | 2021.06.22 |
[C++] 구조체 (0) | 2021.06.22 |