Function allocator_api2::alloc::alloc

1.28.0 · source ·
pub unsafe fn alloc(layout: Layout) -> *mut u8
Expand description

Allocate memory with the global allocator.

This function forwards calls to the GlobalAlloc::alloc method of the allocator registered with the #[global_allocator] attribute if there is one, or the std crate’s default.

This function is expected to be deprecated in favor of the alloc method of the Global type when it and the Allocator trait become stable.

Safety

See GlobalAlloc::alloc.

Examples

use std::alloc::{alloc, dealloc, handle_alloc_error, Layout};

unsafe {
    let layout = Layout::new::<u16>();
    let ptr = alloc(layout);
    if ptr.is_null() {
        handle_alloc_error(layout);
    }

    *(ptr as *mut u16) = 42;
    assert_eq!(*(ptr as *mut u16), 42);

    dealloc(ptr, layout);
}