dealloc — 할당된 메모리 해제하기

dealloc — 할당된 메모리 해제하기

deallocalloc이나 alloc_zeroed로 할당한 메모리를 다시 해제(free) 하는 함수예요. 전역 할당자의 GlobalAlloc::dealloc 메서드를 호출해서 원래 할당했던 레이아웃 그대로 메모리를 돌려줘요.

출처: Rust 공식 문서

본문

pub unsafe fn dealloc(ptr: *mut u8, layout: Layout)

ptr은 반드시 alloc 같은 함수가 돌려준 동일한 포인터여야 하고, layout도 할당할 때 썼던 것과 같은 값을 넘겨야 해요. 그렇지 않으면 할당자의 내부 상태가 깨질 수 있어요.

Safety (안전성): 이미 해제된 포인터를 두 번 해제하거나, 원래 할당된 레이아웃과 다른 레이아웃으로 해제하는 것은 정의되지 않은 동작(UB)이에요. 또한 해제한 뒤에는 그 포인터를 절대 사용하면 안 돼요.

더 알아보기 (Learn more)

Rust 공식 문서