Usage example of the Arena allocator in Zig
zig-arena-allocator.zig
1pub fn init(allocator: std.mem.Allocator) !GameData {
2 var aa = std.heap.ArenaAllocator.init(allocator);
3 return .{
4 .arena_allocator = aa,
5 .id_list = try aa.allocator().alloc(u64, 0),
6 .model_list = try aa.allocator().alloc(Mesh, 0),
7 .position_x_list = try aa.allocator().alloc(f64, 0),
8 .position_y_list = try aa.allocator().alloc(f64, 0),
9 };
10}
11
12pub fn deinit(self: *GameData) void {
13 self.arena_allocator.deinit();
14}