2차원 배열 동적할당 2차원 배열을 동적 할당하기 위해선 조금 다른 방법을 사용해야 한다. 1. 배열 포인터를 사용하여 동적 할당 하는 방법
2. 이중 포인터를 사용한 동적 할당 방법
위의 이중 포인터를 사용한 방법이 가장 일반적이다 그리고 위의 방법을 사용해야 동적할당을 하는 의미가 있다. 3. 이중 포인터를 사용한 동적 할당 포인터 변수 함수의 매개변수로 전달
이중 포인터를 사용하였기 때문에 함수의 형식매개변수 에서 전달 받을때에는 ***삼중 포인터를 사용해야 한다 (Call By Reference 방식일경우) (Call By Value) 일 경우에는 **이중 포인터를 사용하여 받을수 있다.
사실 위의 코드가 이해하기 힘들다 이중 포인터를 왜 써야 할까 라는 생각이 들수 있다 기존에 우리가 1차원 배열을 동적할당 할 때에는
위와 같은 형태를 사용하였다 이 말은 4byte공간 n개를 만들겠다는 뜻이다. 하지만 2차원 배열은 행과,열이라는 표기로 나누게 된다 즉, 2차원 배열은 int의 주소를 넘겨주는것이다 sizeof(int*) 뜻은 포인터 변수의 주소를 n개 만들겠다는 뜻이다. 그래서 int의 공간 n개를 만들고 거기의 시작주소를 넘겨주기 때문에 **p 이중포인터로 받는것이다. 그리고 n개의 int공간을 만들고 해당 주소를 넘겨 받으면 또 그 공간에 우리가 부르는 '열' 이라는 공간을 만드는것이다. 그림을 잘 그리진 못했지만 위와 같은 형태라고 생각하면 이해가 편할것이다. 각 문법이 의미하는 것을 도식화 하였다. |