c_realloc — std::realloc

c_realloc — std::realloc

std::realloc는 이전에 할당한 메모리 블록의 크기를 변경하는 C 언어 스타일 함수예요. <cstdlib> 헤더에 제공돼요.

이미 할당한 메모리를 키우거나 줄여야 할 때 사용해요. 필요한 경우 새 위치로 내용을 복사하고, 기존 메모리는 해제해요.

출처: cppreference

본문

std::realloc는 주어진 메모리 블록의 크기를 변경해요.

void* realloc(void* ptr, std::size_t new_size);
  • ptr — 이전에 malloc, calloc, realloc로 할당한 메모리에 대한 포인터
  • new_size — 새 크기(바이트)

ptr이 가리키는 메모리 블록의 크기를 new_size로 변경해요. 필요하면 내용을 새 위치로 복사하며, new_size와 이전 크기 중 작은 쪽만큼 내용이 보존돼요. 새 크기가 더 크면 추가된 부분은 초기화되지 않아요.

메모리를 옮겨야 한다면 이전 블록은 해제되고 새 블록이 반환돼요. 실패하면 원래 블록은 그대로이고 nullptr이 반환돼요. ptrnullptr이면 malloc(new_size)처럼 동작해요.

더 알아보기 (Learn more)

cppreference