The default memory allocator provided by the operating system.
This is based on malloc on Unix platforms and HeapAlloc on Windows,
plus related functions.
This type can be used in a static item
with the #[global_allocator] attribute
to force the global allocator to be the system’s one.
(The default is jemalloc for executables, on some platforms.)
use std::alloc::System;
#[global_allocator]
static A: System = System;
fn main() {
    let a = Box::new(4); 
    println!("{}", a);
}Run
It can also be used directly to allocate memory
independently of the standard library’s global allocator.
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Returns a pointer meeting the size and alignment guarantees of layout. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Behaves like alloc, but also ensures that the contents are set to zero before being returned. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Deallocate the memory referenced by ptr. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Returns a pointer suitable for holding data described by a new layout with layout’s alginment and a size given by new_size. To accomplish this, this may extend or shrink the allocation referenced by ptr to fit the new layout. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Returns bounds on the guaranteed usable size of a successful allocation created with the specified layout. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Behaves like alloc, but also returns the whole size of the returned block. For some layout inputs, like arrays, this may include extra storage usable for additional data. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Behaves like realloc, but also returns the whole size of the returned block. For some layout inputs, like arrays, this may include extra storage usable for additional data. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Attempts to extend the allocation referenced by ptr to fit new_size. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Attempts to shrink the allocation referenced by ptr to fit new_size. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Allocates a block suitable for holding an instance of T. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Deallocates a block suitable for holding an instance of T. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Allocates a block suitable for holding n instances of T. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Reallocates a block previously suitable for holding n_old instances of T, returning a block suitable for holding n_new instances of T. Read more
🔬 This is a nightly-only experimental API.  (
allocator_api #32838)
 Deallocates a block suitable for holding n instances of T. Read more
Allocate memory as described by the given layout. Read more
Behaves like alloc, but also ensures that the contents are set to zero before being returned. Read more
Deallocate the block of memory at the given ptr pointer with the given layout. Read more
Shink or grow a block of memory to the given new_size. The block is described by the given ptr pointer and layout. Read more
🔬 This is a nightly-only experimental API.  (
try_from #33417)
 The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API.  (
try_from #33417)
  
🔬 This is a nightly-only experimental API.  (
try_from #33417)
 The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API.  (
try_from #33417)
  
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API.  (get_type_id #27745)
this method will likely be replaced by an associated static