Memory Alignment
1 / 5
aligned = (addr + alignment - 1) & ~(alignment - 1);
// Example: align 0x1004 to 16 bytes
// (0x1004 + 15) & ~15
// = 0x1013 & 0xFFF0
// = 0x1010
void aligned_free(void *ptr) {
void *original = ((void**)ptr)[-1];
free(original);
}