카테고리 없음

[C언어] sizeof 연산자

s뽈록이s 2013. 5. 3. 09:51
void main()
{
	// pInt = (int *)malloc(sizeof(int));
	int i = 0;
	printf("int = %d\n", sizeof(int));
	printf("double = %d\n", sizeof(double));
	printf("i = %d\n", sizeof(i));
	printf("string = %d\n", sizeof("string"));
}

프로그램 실행화면


sizeof 연산자라는 놈이 있다. 이 녀석의 역할은 이름을 보면 알 수 있듯이 사이즈를 알 수 있게 해준다. 단위는 바이트 단위이다.


int는 4바이트 double은 8바이트의 사이를 가지고 있는 것을 알 수 있다. 그리고 string 배열은 7글자이니 7바이트의 크기를 가지고 있다. sizeof는 언제 사용하게 되는 것일까?


malloc()이라는 동적할당을 해주는 녀석이 있다. 포인터를 선언하고 포인터의 크기를 넣어 줄 때(메모리 할당) 사용하는 함수이다. 이 떄 사용하게 된다.


주석 처리된 부분이 바로 그부분이다. int하나의 크기 만큼 메모리를 할당해 주고 있다. 여기서 배열로 선언하고 길이를 10만큼 하고 싶다면 sizeof(int) * 10을 하면 된다.


동적 할당이 왜 필요하냐고 생각할 수도 있다. 그것은 숙제(?)로 남기겠다. 왜 써야 하는지 알게 되었다면 초급에서 벗어났다고 할 수 있다.