C

C 다차원 배열

yeooniyeoon 2022. 9. 20. 23:37
728x90
SMALL

다차원 배열

다차원 배열은 2차원 이상의 배열을 말한다.

2차원, 3차원, 4차원 ... 

C언어는 4차원 이상의 배열도 문법적으로는 허용한다.

그러나 4차원 이상의 배열은 불필요하고 논리적으로 이해하기도 힘들기 때문에

다차원 배열은 2, 3차원 배열을 말하는 것으로 이해하는 것이 좋다.

 

선언 방법은 다음과 같다.

 

자료형 배열명[세로][가로];	//2차원 배열
자료형 배열명[세로][가로][높이];	//3차원 배열

 

1차원 배열 선언 시에는 []안의 수가 요소의 수를 의미했지만

다차원 배열에서는 순서대로 세로, 가로, 높이를 의미한다.

2차원 배열은 면으로, 3차원 배열은 직육면체 개념으로 생각하면 이해가 쉽다.

 

 

그렇다면 실제 메모리에도 면, 직육면체 형태로 할당되어 있을까?

메모리는 1차원 구조이기 때문에 실제로는 1차원 형태로 저장되어 있다.

 

2차원 int형 배열 arr[2][2]가 메모리에 저장된 모습은 아래와 같다.

왼쪽의 숫자는 메모리의 주소이다. int형 배열이므로 각 배열의 요소가 4byte씩을 차지한다.

2차원 배열 arr는 메모리 상에서는 위와 같이 1차원의 형태로 나란히 저장된다.

 

다차원 배열의 크기를 sizeof를 통해 구하면

가로*세로*배열의 타입 을 전부 곱한 것이 배열의 크기가 된다.

 

728x90
반응형
SMALL