Function std::alloc::alloc

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

使用全局分配器分配内存。

如果存在,则此函数将调用转发到用 #[global_allocator] 属性注册的分配器的 GlobalAlloc::alloc 方法,或者将其默认为 std crate。

Global 类型的 alloc 方法和 Allocator trait 变得稳定时,应优先使用此函数,而不是 Global 类型的 alloc 方法。

Safety

请参见 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);
}
Run