로딩
요청 처리 중입니다...

동적 배열(dynamic array), 2차원 동적 배열

 동적 배열(dynamic array), 2차원 동적 배열

C 언어는 다차원 배열을 표현하기 위하여 소위 배열의 배열을 사용하고 있다. 2차원 배열은 각 원소 자체가 1차원 배열이 되는 1차원 배열로 표현된다. 2차원 배열을 표현하기 위하여 라고 하면 실제로 길이가 3인 1차원 배열 Arr이 생성되는데, 이 Arr의 각 원소는 길이가 5인 1차원 배열이다. C는 원소 Arr[i][j]를 찾을 때 제일 먼저 Arr[i]에 있는 포인터에 접근한다.

이 포인터는 배열의 행 i의 0번째 원소의 메모리 주소를 제공한다. 그러면 이 포인터에 j*sizeof(int)를 더하면 Arr[i][j]의 주소가 결정된다.

다음은 2차원 배열을 생성하는 코드이다. //rows*cols의 2차원 배열을 생성하는 함수. int **make2D(int rows, int cols){ int **array, i; //row 포인터들에 메모리 주소를 할당.

MALLOC(array, rows*sizeof(*array)); //각 row마다 col만큼의 메모리 할당. for(i...