Function std::alloc::alloc

pub fn alloc<T>(count: u64) -> raw_ptr 
Expand description

Allocates zeroed memory on the heap.

Additional Information

In the FuelVM, the heap begins at VM_MAX_RAM and grows downward.
The heap pointer($hp) always points to the first allocated byte.

Initially the heap will look like this:

                                                    ▾$hp
... 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
                                                    ▴VM_MAX_RAM

After allocating with let ptr = alloc::<u64>(1):

                            ▾$hp
... 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
                            ▴ptr                    ▴VM_MAX_RAM

After writing with sw(ptr, u64::max()):

                            ▾$hp
... 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF |
                            ▴ptr                    ▴VM_MAX_RAM

For more information, see the Fuel Spec for VM Initialization
and the VM Instruction Set for Memory Allocation.

Arguments

  • count: [u64] - The number of size_of<T> bytes to allocate onto the heap.

Returns

  • [raw_ptr] - The pointer to the newly allocated memory.

Examples

use std::alloc::alloc;

fn foo() {
    let ptr = alloc::<u64>(2);
    assert(!ptr.is_null());
}