
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.
arena_alloc(32) on a fresh arenaExpected result
p align:ok inpool:okFor your own tracking. Tests grade your code.
arena_alloc(1) then arena_alloc(1)Expected result
a align:ok inpool:ok
b align:ok inpool:ok
a|b overlap:nonearena_alloc(4096) then arena_alloc(1)Expected result
full align:ok inpool:ok
extra nullarena_alloc(0)Expected result
p nullarena_alloc(1) until it refusesExpected result
chunk1 granted:512
next nullExpected files
arena_alloc.cAllowed functions
None. Write every helper yourself.
Allowed headers

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.
arena_alloc(32) on a fresh arenaExpected result
p align:ok inpool:okFor your own tracking. Tests grade your code.
arena_alloc(1) then arena_alloc(1)Expected result
a align:ok inpool:ok
b align:ok inpool:ok
a|b overlap:nonearena_alloc(4096) then arena_alloc(1)Expected result
full align:ok inpool:ok
extra nullarena_alloc(0)Expected result
p nullarena_alloc(1) until it refusesExpected result
chunk1 granted:512
next nullExpected files
arena_alloc.cAllowed functions
None. Write every helper yourself.
Allowed headers

Run the tests to grade your code
Build your code, then check each test here. Open a result to inspect its output.
v0.40: Create exercises. Challenge the community.
Meet Studio →