C언어

[C언어] realloc() 함수

_minit 2024. 10. 8. 15:53

realloc() 함수는 C 프로그래밍 언어에서 동적 메모리를 할당하기 위해 사용되는 함수이다. 이 함수는 표준 라이브러리  <stdlib.h>에 정의되어 있다. C언어에서 동적으로 할당한 메모리는 free함수를 이용하여 부분적으로 해제할 수 없다. 대신 realloc 함수를 이용하여 할당한 메모리의 크기를 조절할 수 있다.

 

사용법

#include <stdlib.h>

void* realloc(void* ptr, size_t new_size);

 

매개변수

 

  • ptr : 크기를 변경할 기존 메모리 블록의 포인터이다. 만약 이 값이 NULL이면, realloc은 malloc과 같은 방식으로 새로운 메모리 블록을 할당한다.
  • new_size : 새로 요청하는 메모리 블록의 크기(바이트 단위)이다.

기능

  • 크기 조정: 현재 할당된 메모리 블록의 크기를 new_size로 변경한다.
  • 메모리 이동: 만약 요청한 크기가 현재 블록에 맞지 않는 경우, realloc은 새로운 위치에 메모리를 할당하고 기존 데이터를 새로운 메모리 블록으로 복사한다.
  • 초기화: 새로 할당된 메모리 블록의 초기화 상태는 미정이며, 이전 메모리 블록의 값은 유지된다.

반환값

  • 성공적으로 메모리를 재할당하면, 재할당된 메모리 블록의 포인터를 반환한다.
  • 메모리 재할당에 실패하면 NULL을 반환하며, 이 경우 기존 포인터는 여전히 유효하다.

 

메모리 해제

#include <stdlib.h>

void free(void *ptr);

 

728x90

'C언어' 카테고리의 다른 글

[C언어] (void *) 포인터란?  (0) 2024.10.10
[C언어] memcpy() 함수  (0) 2024.10.10
[C언어] memset() 함수  (0) 2024.10.10
[C언어] calloc() 함수  (0) 2024.10.08
[C언어] malloc() 함수  (0) 2024.10.08