const allocator: *std.mem.Allocator = std.heap.page_allocator;
const my_slice_of_foo: []Foo = allocator.alloc(Foo, 10);
Это выделит срез с помощью len 10. Позже он может быть освобожден с помощью allocator.free(my_slice_of_foo)
. В zig массивы обычно представлены в виде срезов, которые содержат указатель и количество элементов (struct {ptr: [*]type, len: usize}
). Распределители имеют функцию .create(type)
для выделения пространства для одного значения и возврата указателя, а также функцию .alloc(type, count)
для выделения непрерывного массива и возврата фрагмента.