head: Block 0: 16 bytes at ADDR, tag: "node 1" Total: 1 allocated blocks, 16 allocated bytes head,middle: Block 0: 16 bytes at ADDR, tag: "node 1" Block 1: 16 bytes at ADDR, tag: "node 2" Total: 2 allocated blocks, 32 allocated bytes head,middle,tail: Block 0: 16 bytes at ADDR, tag: "node 1" Block 1: 16 bytes at ADDR, tag: "node 2" Block 2: 16 bytes at ADDR, tag: "node 3" Total: 3 allocated blocks, 48 allocated bytes 1 2 3 1 2 1 3 1 3 1 free_block(ADDR, Middle again): free of non-allocated block free_block(ADDR, Trying something different..): bad address Done! Block 0: 16 bytes at ADDR, tag: "node 1" Block 2: 16 bytes at ADDR, tag: "node 3" Total: 2 allocated blocks, 32 allocated bytes