Sollicitatievraag bij Cisco

Asked me to write 8 bytes aligned malloc and corresponding free function

Antwoorden op sollicitatievragen

Anoniem

24 feb 2015

one int = 4 bytes.

Anoniem

24 jun 2017

void *aligned_malloc(int size, int align) { void *p = malloc(sizeof(void *) + size + align); size_t mask = ~(align - 1); size_t p2 = ((size_t)p + align + sizeof(void *)) & mask; *((void **)p2 - 1) = p; return (void *)p2; } void aligned_free(void *p) { void *p1 = *((void **)p - 1); free(p1); }