realloc — 메모리 블록 크기 재조정하기
realloc — 메모리 블록 크기 재조정하기
realloc은 이미 할당된 메모리 블록의 크기를 새로 조정(재할당) 하는 함수예요. 기존 할당을 해제하면서 동시에 새 크기로 다시 할당하는 것과 비슷하지만, 가능하면 같은 위치에서 크기만 바꿔요.
출처: Rust 공식 문서
본문
pub unsafe fn realloc(ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8
ptr은 alloc 계열 함수가 돌려준 포인터이고, layout은 원래 할당할 때 쓴 레이아웃이에요. new_size는 새 크기로, 0보다 커야 해요. 기존 내용의 앞부분은 새 블록에 그대로 복사되어 보존돼요.
Safety (안전성): 0이 아닌 크기로 할당된 메모리만 재할당할 수 있으며, new_size가 0이거나 잘못된 ptr/layout을 넘기면 정의되지 않은 동작(UB)이에요. 반환된 새 포인터는 기존 포인터와 다를 수 있으니, 반환값을 기준으로 다시 사용해야 해요.