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 |