작성: 2020-07-29 수정:
2020-07-29
c언어 sizeof 연산자
c언어 sizeof 연산자 사용법
자료형이 차지하는 메모리의 크기를 반환
sizeof는 함수와 유사하게 사용될 수 있지만, 연산자이다.
ex) 1. 기본 자료형
int main()
{
// 3가지 모두 동일
int a = 0;
unsigned int int_size1 = sizeof a;
unsigned int int_size2 = sizeof(int);
unsigned int int_size3 = sizeof(a);
// 기본적으로 unsigned int 이지만, 시스템 따라 상이 할 수 있다.
// 이식성을 높이기 위해서 사용한다.
size_t int_size4 = sizeof(a);
size_t float_size1 = sizeof(float);
// size_t는 변환 지정자 zu를 사용
printf("%zu\n", int_size4);
return 0;
}
ey) 2. 정수 배열
int main()
{
int int_arr[30];
// int_ptr의 크기는 동적으로 변경될 수 있기 때문에 주소의 크기만을 가진다.
int *int_ptr = NULL;
int_ptr = (int*)malloc(sizeof(int) * 30);
printf("%zu\n", sizeof(int_arr)); // 120
printf("%zu\n", sizeof(int_ptr)); // 8
return 0;
}
ez) 2. 문자 배열
int main()
{
int int_arr[30];
// int_ptr의 크기는 동적으로 변경될 수 있기 때문에 주소의 크기만을 가진다.
int *int_ptr = NULL;
int_ptr = (int*)malloc(sizeof(int) * 30);
printf("%zu\n", sizeof(int_arr)); // 120
printf("%zu\n", sizeof(int_ptr)); // 8
return 0;
}