본문 바로가기
[알아두면 좋을 것들]

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
반응형

'[알아두면 좋을 것들]' 카테고리의 다른 글

행렬 곱셈  (0) 2020.12.14
[Atom] Script  (0) 2020.12.11
배열 포인터 vs 포인터 배열  (0) 2020.12.02
[MBTI] ESTJ 관통당했다.  (0) 2020.11.18
티스토리 이미지 업로드 오류 시 해결방법 ㅋㅋㅋㅋ  (0) 2020.09.27