void main() { int *ar; ar = (int*)malloc(5 * sizeof(int)); ar[4] = 1234; ar = (int*)realloc(ar, 10 * sizeof(int)); ar[9] = 5678; printf("ar[4] = %d, ar[9] = %d\n", ar[4], ar[9]); free(ar); }
프로그램 실행화면
동적할당하면 malloc()함수를 많이 생각한다. 동적할당을 받았고 그 후에 사이를 변경하고 싶을 때에는 어떻게 하면 될까? 바로 realloc()함수를 사용하면 된다.
free()로 지우고 새로 할당하는 개념으로 생각하면 된다. 하지만 이전 데이터는 남아 있는 것을 알 수 있다. ar[4]의 값이 지워지지 않고 그대로 출력되는 것을 보면 알 수 있다.
언제 왜 동적할당이 필요한지를 알았다면 어느 정도 프로그래밍 실력이 쌓였다고 볼 수 있다.