malloc
calloc
realloc
#include <stdlib.h>
void *malloc(size_t size);
void *calloc(size_t nobj, size_t size);
void *realloc(void *ptr, size_t newsize);
// 반환값: 성공 시 NULL이 아닌 포인터, 오류 시 NULL
void free(void *ptr);
malloc
, calloc
, realloc
함수들의 반환값인 void*
은 다른 포인터 변수에 대입할 경우 명시적인 형변환을 할 필요가 없다고 UNIX 고급프로그래밍에서는 이야기한다.C++ 에서는 malloc으로 메모리 동적할당 시 명시적 형변환을 하지 않으면 에러가 발생한다.
https://eli.thegreenplace.net/2009/11/16/void-and-casts-in-c-and-c
UNIX 고급 프로그래밍 7장 - 리처드 스티븐스, 스티븐 레이고
http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=97911854750