slice_init

slice_init :: fn (_v: Any, n: s64, loc: )

Allocate heap memory for n elements in _v slice. Allocated block is set to zero default value. Allocated memory must be released by slice_terminate call.

This way of memory allocation cause some overhead compared to plain alloc due to conversion to Any and more ‘generic’ behaviour, also setting to 0 have some runtime cost. Consider use of alloc instead in performance-critical cases.

Example

main :: fn () s32 {
    // Allocate slice of 10 numbers
    sl: []s32;
    slice_init(sl, 10);

    loop i := 0; i < sl.len; i += 1 {
        sl[i] = i;
    }

    // release memory allocated by init
    slice_terminate(sl);

    return 0;
}

Declared in: memory.bl