본문 바로가기
언어/ㄴC언어

[C언어] sizeof 에 대해

by 공대우냉이 2016. 3. 24.

sizeof 연산자(operator)를 사용합니다. 함수는 아닙니다.

sizeof(array) 나누기 sizeof(array[0])

이렇게 하면, 배열 요소 개수(number of elements in an array)가 구해집니다.


sizeof(array) 로, 배열 전체의 바이트(Byte) 수를 구하고

sizeof(array[0]) 으로, 배열 첫번째 요소의 크기를 바이트 단위로 구합니다. 이것을 나누면, 배열의 요소 개수가 나옵니다. 다음 예제와 같습니다.


sizeof 연산자로 배열 사이즈 계산 예제


소스 파일명: example.cpp

#include <stdio.h>

int main(void) {

  int foo[] = { 519, 31, 7988, 165326, 10, -24642, 134 };


  // 배열의 바이트 수 (메모리 차지하는 용량) 출력
  printf("%d\n", sizeof(foo));
  // 출력 결과: 28
  // 4바이트인 int가, 7개 있어, 4 * 7 = 28 이기에


  // 배열 요소 개수 출력
  printf("%d\n", sizeof(foo) / sizeof(foo[0]));
  // 출력 결과: 7
  // 배열에 7개의 요소가 있으므로


  return 0;
}


=============================================================================
reference : 

http://mwultong.blogspot.com/2007/02/c-get-array-size-number-of-elements.html