본문 바로가기

카테고리 없음

[C++] sizeof 연산자

void main()
{
	// pInt = (int *)malloc(sizeof(int));
	int i = 0;
	cout << sizeof(int) << endl;
	cout << sizeof(double) << endl;
	cout << sizeof(i) << endl;
	cout << sizeof("string") << endl;
}

프로그램 실행화면


sizeof 연산자는 이름에서도 알 수 있듯이 사이즈를 알려주는 녀석이다. int형은 4바이트이기 때문에 4가 반환되고 double은 8바이트 그리고 int i의 i는 역시 int형이기 때문에 4바이트이다.


마지막으로 "string"은 7바이트이다. 6글자인데 왜 7바이트일까? 문자열은 마지막에 NULL값 또는 0이 들어있기 때문에(문자 '0'이 아닌 0x00) 한 바이트가 더 필요하다. 어디서 문자열이 끝났는지 알 수 있어야 하기 때문이다.


sizeof 연산자를 자주 사용하는 곳은 동적할당이다. 주석처리된 부분이 바로 동적할당을 하는 부분이다. 동적할당을 배우게 되면 알겠지만 그때그때 필요한 만큼의 메모리를 가져다 쓴다. 이때 필요한 것이 얼만큼 필요하냐인데 이 크기를 sizeof 연사자를 통해서 손쉽게 처리할 수 있다.