programming/c

배열 길이

chanchand 2023. 4. 17. 13:52
반응형

배열의 길이


전체 배열 크기를 요소 하나의 크기로 나누면 배열의 길이를 알 수 있다.

#include <stdio.h>

int main(){
  int arr[] = {1, 2, 3, 4, 5, 100};

  printf("%d\n", sizeof(arr)); // 배열이 메모리 상에서 차지하고 있는 용량
  // int : 4 byte * 6개 = 24

  printf("%d\n", sizeof(arr) / sizeof(arr[0])); // 배열의 길이
  // 요소 하나 : 4byte
  // 전체 배열을 요소 하나로 나누면 길이 계산
  // 출력 결과 : 24 / 4 = 6
  
  return 0;
}

 

 

매개변수 배열의 길이


배열을 함수의 파라미터로 넘기면 배열의 주소를 넘기게 된다.

함수에 입력된 arr 배열은 주소로 사용되어 주소 크기인 2가 출력된다.

배열 크기를 메인 함수에서 계산한 뒤, 파라미터로 같이 넘겨주면 된다.

#include <stdio.h>

int arrSize(int arr[]){
    int size = sizeof(arr) / sizeof(arr[0]);
	return size;
}

int main() {
	int arr[] = {1, 2, 3, 4, 5, 100};
	int size = sizeof(arr) / sizeof(arr[0]);
	
	printf("size : %d\n", size); // 6
	printf("funSize: %d\n", arrSize(arr)); // 2
	
  return 0;
}

 

반응형

'programming > c' 카테고리의 다른 글

qsort()  (1) 2023.10.01
[CodeUp] 1079-1092 (ing)  (0) 2023.09.28
[BAEKJOON] 알고리즘 수업 - 병합 정렬 1(24060)  (0) 2023.01.14
합병정렬(merge sort)  (0) 2023.01.14
error: variable-sized object may not be initialized  (0) 2023.01.14