85. realloc 함수

학생1) 동적으로 할당한 메모리는 확장할 수 없니? 학생2) realloc 함수를 사용하면 메모리를 재할당 해 주지. 확장도 가능하고 축소도 가능해.

void *realloc(void *base,size_t nsize);

C언어에서 동적으로 할당한 메모리는 free 함수를 이용하여 부분적으로 해제할 수 없어요.
대신 realloc 함수를 이용하여 할당한 메모리의 크기를 조절할 수 있어요.

첫 번째 입력 인자에는 이전에 동적으로 할당한 메모리 주소를 전달하세요.
두 번째 입력 인자에는 새로 할당할 메모리 크기를 전달해요.
realloc 함수를 이용하면 기존의 메모리의 내용은 유지하면서 메모리 크기를 변경할 수 있어요.
새롭게 늘어난 부분의 값은 쓰레기 값이예요.
그리고 realloc 함수를 호출할 때 첫 번째 입력 인자로 0을 전달해서 동적 메모리를 할당받을 수도 있어요.

대부분 realloc 함수를 사용할 때 동적으로 할당한 메모리를 기억할 포인터 변수를 첫 번째 입력 인자로 전달해서 사용해요.
그리고 realloc 함수가 반환한 메모리 주소를 해당 포인터 변수에 대입하죠.

◈ realloc 함수를 이용하여 동적으로 할당한 메모리의 크기를 확장하는 예

◈실행 결과


[C언어 무료 동영상 강의] 82~85. 동적 메모리 할당 함수