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이 반환돼요. ptr이 nullptr이면 malloc(new_size)처럼 동작해요.