외규장각 도서 환수 모금 캠페인

2차원 배열

Posted 2007. 6. 11. 00:11, Filed under: Study/Computer Science

다차원 배열의 동적할당

사용자 삽입 이미지

먼저 1번처럼 1차원 배열을 가리키는 포인터의 배열을 할당한 후에 2번과 같이 1차원 배열들을 할당해주어야 2차원 배열의 공간을 할당할 수 있다. 그렇지 않을 경우에 접근 제한 에러를 발생시키게 된다.


함수에 다차원 배열 전달하기

char array[100][100] 과 같이 선언된 이차원 배열을 함수로 넘겨줄 때 char** 타입으로 배열의 시작 주소를 넘기면 안됨. 이처럼 넘겨줄 경우에 배열의 주소 연산을 할 수가 없음.
이는 메모리 상에서 1차원으로 저장된 2차원 배열에서 인덱스를 통해 배열 요소에 접근 할 때인덱스가 하나 증가하면 얼마만큼의 메모리 공간을 이동해서 접근해야하는지 알 수 없기 때문이다. 

array[1][2] 와 같이 참조하였을 때 배열의 크기에 따라 해당하는 배열 요소의 메모리 상에서의 위치가 달라진다는 것.

그러므로 함수의 파라메터로 넘겨줄 때 char [][100] 과 같은 형태로 전달해주어야한다.

---------------
이상ㅡ 어제 창희 숙제 도와주다가 삽질한 것들 -_-;
예전에 다 했던 것들이고 굉장히 기본적인 것인데도 잘 까먹는다.
Response : ,


Recent Posts

Recent Comments

Recent Trackbacks

Total hit (Today , Yesterday )

Admin Write Post