더북(TheBook)

malloc() 함수를 사용하여 메모리를 할당 받으니 결과가 제대로 나왔네요. 그런데 기존의 char *a = malloc(15); 형태와는 다르게 malloc() 함수를 사용하는 문장이 조금 복잡해 보입니다.

자세히 살펴보겠습니다.

malloc(sizeof(char) * 15);

sizeof(char)는 1바이트입니다. 1 * 15이므로 malloc(15);라고 할 수 있습니다. 이는 “15바이트 크기의 메모리를 할당 받으라!”는 명령어입니다.

(char *)malloc(15);

그림 10-5를 보면, 15바이트를 동적으로 메모리 할당하고 할당 받은 메모리의 자료형을 문자형으로 설정합니다. malloc() 함수로 전달하고자 하는 값이, 할당 받은 메모리의 문자형 주소이므로 (char *)를 붙였습니다.

그림 10-5 | 동적 메모리 할당 과정

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.