Objective
Write arena_alloc and arena_reset, a bump allocator that serves 8-aligned slices out of one 4096-byte static pool and never calls malloc.
Steps
$ arena_alloc(32) on a fresh arena
p align:ok inpool:ok
$ arena_alloc(1) then arena_alloc(1)
a align:ok inpool:ok b align:ok inpool:ok a|b overlap:none
$ arena_alloc(4096) then arena_alloc(1)
full align:ok inpool:ok extra null
$ arena_alloc(0)
p null
$ arena_alloc(1) until it refuses
chunk1 granted:512 next null
Expected files
Allowed functions
None. Write every helper yourself.
Allowed headers

Objective
Write arena_alloc and arena_reset, a bump allocator that serves 8-aligned slices out of one 4096-byte static pool and never calls malloc.
Steps
$ arena_alloc(32) on a fresh arena
p align:ok inpool:ok
$ arena_alloc(1) then arena_alloc(1)
a align:ok inpool:ok b align:ok inpool:ok a|b overlap:none
$ arena_alloc(4096) then arena_alloc(1)
full align:ok inpool:ok extra null
$ arena_alloc(0)
p null
$ arena_alloc(1) until it refuses
chunk1 granted:512 next null
Expected files
Allowed functions
None. Write every helper yourself.
Allowed headers

Tests
Run the tests to grade your code