Frage im Vorstellungsgespräch bei Cisco

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

Antworten zu Vorstellungsgespräch

Anonym

24. Feb. 2015

one int = 4 bytes.

Anonym

24. Juni 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); }