참고 sizeof() >> 로 배열의 길이를 구할 경우 생기는 문제점 이 함수는 배열의 길이를 구하는 게 아니라 배열의 크기를 구하는 함수다. 즉, 1byte 를 기준으로 얼마나 많은 byte를 할당하고 있는가?
에 대한 함수다. int arr[4]로 함수의 크기를 구하면 '4byte 정수가 4개 = 16byte' 가 나온다. 그리고 여기서 다시 한 번 sizeof(int) = int 타입의 크기를 구하기' 해서 sizeof(arr) / sizeof(int) 로 16/4 = '4' 라는 값을 도출 할 수 있다.
이는 배열이 선언한 4개의 int 타입 변수와 똑같은 값을 도출한다. 하지만 정상적으로 작동하지 않을 때가 있다.
포인터를 쓸 경우에 함수 자체의 크기가 아닌 포인터의 크기를 재는 불상사가 일어난다....
원문 링크 : 배열의 평균 구하기