저는 메인 언어가 Java이다 보니 length를 사용하여 배열을 구현하였지만 C에서는 length가 없기 때문에 직접 크기를 구해어야했습니다.
sizeof
를 사용하면 해당 타입의 크기를 반환해주는데요. 예시로 int
는 4byte
의 크기를 가지고 있기 때문에 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