PersesTitan(페르) 기술블로그

[C] C언어에서 배열 길이 구하기 (sizeof) 본문

Language/C

[C] C언어에서 배열 길이 구하기 (sizeof)

PersesTitan(페르) 2023. 4. 5. 11:20

저는 메인 언어가 Java이다 보니 length를 사용하여 배열을 구현하였지만 C에서는 length가 없기 때문에 직접 크기를 구해어야했습니다.

sizeof

sizeof를 사용하면 해당 타입의 크기를 반환해주는데요. 예시로 int4byte의 크기를 가지고 있기 때문에 int 타입을 sizeof를 사용하여 값을 구하면 4라는 값이 출력됩니다.
예시

(...)
int i = 0;
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(i));
(...)

출력

4
4

해당 기능을 이용하여 배열의 길이를 구할 수 있는데요. 배열은 기본타입사이즈 * 배열의길이의 값이 나오는데요.
예시로 int[10]인 배열은 int 가 4, 배열의 크기가 10이므로 40의 값이 출력되게 됩니다.
따라서 배열의 길이만 구하고 싶다면 배열의 sizeof / 기본타입사이즈를 해주면 배열의 길이를 구할 수 있게 됩니다.
예시

(...)
int array[10];
// sizeof(array) == 40
// sizeof(int) == 4
// sizeof(array) / sizeof(int) == 10
printf("%d", sizeof(array) / sizeof(int));
(...)

출력

10

'Language > C' 카테고리의 다른 글

[C] 포맷 (format) 종류 정리  (0) 2023.06.16
[C] 10진수 2진수로 변환 (특이하게 변환해보기)  (0) 2023.04.05
[C++] 출력하기  (0) 2023.03.09
[C][C++] GCC 다운로드 하기  (0) 2023.03.04
[C][CPP] 자동 컴파일 제작  (0) 2023.03.04