배열 길이를 함수 안에서 구하려고 sizeof를 썼는데 값이 말이 안 됩니다. 한참 삽질하다가 여기 물어봅니다.
main에서는 이렇게 400이 잘 나오는데요.
int a[100];
printf("%zu\n", sizeof(a)); // 400 (100 * 4)
이 배열을 함수에 넘기면 갑자기 8이 나옵니다.
void f(int arr[]) {
printf("%zu\n", sizeof(arr)); // 8 ???
}
400이 나와야 하는 거 아닌가요? 함수 안에서 arr을 찍어보면 8이라서 배열 길이를 for문 돌릴 때 못 쓰겠더라고요. 8이라는 값도 왜 하필 8인지 모르겠고요. 함수에 배열 넘기면 뭔가 달라지는 게 있는 건가요?