GlobalAlloc — 전역 할당자를 위한 트레이트
GlobalAlloc — 전역 할당자를 위한 트레이트
GlobalAlloc은 #[global_allocator]로 지정해 프로세스 전역 할당자가 되기 위한 트레이트예요. 시스템 전역에서 사용되는 기본 메모리 할당 동작을 정의해요.
출처: Rust 공식 문서
본문
pub unsafe trait GlobalAlloc {
// Required methods
unsafe fn alloc(&self, layout: Layout) -> *mut u8;
unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout);
// Provided methods
unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 { ... }
// ...
}
필수 메서드는 alloc과 dealloc이에요. 이 트레이트는 unsafe라서 구현 시 메모리 안전성을 보장해야 해요. Box, Vec 등이 실제로 힙 메모리를 얻는 공통 경로가 바로 이 트레이트의 메서드들이에요.