작성
·
576
0
int_ptr = (int*) malloc(sizeof(int) * 30); 여기서 malloc(sizeof(int) * 30) 통해서 120byte가 되는것은 이해를 하였는데 앞의 (int*)는 무슨 역할을 하는지 알 수 있을까요?
답변 2
1
안녕하세요.
int*로 형변환하는 것입니다!
malloc은 동적으로 메모리를 할당 받은 후 이의 메모리 주소를 void* 형태로 반환합니다.
즉, sizeof(int) * 30 크기의 메모리를 할당받은 후 이의 주소를 void * 타입으로 리턴합니다.
int_ptr 은 int* 즉 int 를 가리키는 포인터이기에, int_ptr에 할당받은 힙 메모리의 주소를 (int *)로 형변환 하여 int_ptr에 대입시킨 것입니다.
0