본문 바로가기
[끄적끄적]

C언어 배열 길이

by Hevton 2020. 12. 2.
반응형

배열이 할당되면 당연히 그 크기에 맞는 메모리가 스택에 할당된다.

 

int a[30] 배열이 있을 때, C언어에서 이 배열의 길이를 구하려면

sizeof(a)/sizeof(a[0]) = 30 이 나온다. 여기서 헷갈리지 말아야 할 점은, 요소가 얼마나 채워져있느냐에 상관없이 할당된 크기 그 자체를 갖는다는 것.

 

나는 당연히 알고 있었지만, 다른 게시글들을 보며 괜히 혼동이 왔다.

 

배열의 전체 길이를 확인하는 방법이지, 요소가 얼마나 들어있는지 확인 할 수 있는게 아니라는것.

스택 학적으로 생각해보면 당연하다.

int a[5] = {1, 2};
printf("%ld", sizeof(a));

Output : 20



int b[5];
printf("%ld", sizeof(b));

Output : 20

20인 이유는 int가 4바이트 x 5
반응형

'[끄적끄적]' 카테고리의 다른 글

[개발 환경 서비스] ideone  (0) 2020.12.17
[Mac] 패키지 매니저 Homebrew  (2) 2020.12.17
배열 포인터 vs 포인터 배열  (0) 2020.12.02
난 왜이렇게 멍청할까..  (0) 2020.11.29
코로나 검사 후기  (0) 2020.10.22