반응형

아래 포스팅에서 배열 선언방법과 그 배열의 크기에 대해서 알 수 있다.

https://ansan-survivor.tistory.com/1188

 

[C언어] C언어 배열의 크기에 대해서, 배열 크기 보기 sizeof 함수

C언어의 배열(Array)는 보통 행렬 Matrix로 비유해서 설명한다. 아래 예시를 보고 어떤식으로 sizeof 의 크기가 나오는지 알 수 있다. sizeof 의 크기는 자료형에 따라 크기가 다르다. char, int, float 등 아

ansan-survivor.tistory.com

 

보통 배열을 선언할 때, 행과 열의 크기를 선언한다. ex)  arr[3][4]  , 3x4 행렬 배열

배열을 선언할 시 위와 같이 행과 열의 크기를 선언하지만,

column 값만 넣으면 나머지 알아서 할당이 된다. (row값 생략 가능)

즉,  arr[ ][3] 이런식으로 선언할 수 있다.

그러면 가로 길이(row)는 내가 넣은값에따라 컴파일러가 알아서 계산을 해준다. 

 

#include <stdio.h>

/*
	2차원배열 크기를 알려주지 않고 초기화 하기.
	** 세로길이(row)만 생략할 수 있다. column은 표시해주어야 함.
	   
*/

int main()
{
	// 2차원 배열의 초기화방법
	// 가로길이에 대한 정보는 반드시 제공해야한다.
	// 그러면 나머지 길이는 컴파일러가 계산해서 넣음.

	int arr1[][4] = { 1,2,3,4,5,6,7,8 };
		/*
		[1 , 2]		세로의 길이 4
		[3 , 4] 
		[5 , 6]
		[7 , 8]
		*/
	int arr2[][2] = { 1,2,3,4,5,6,7,8 };
		/*
		[1, 2, 3, 4]	세로의 길이 2
		[5, 6, 7, 8]
		*/

	return 0;
}

 

만약 column을 생략하고 row만 넣으면 에러때문에 컴파일이 불가능하다.

(결과)

int는 4 byte이므로, 

4 byte x 8개 = 32 byte 사이즈가 나온다.

 

 

반응형

+ Recent posts