Question d’entretien chez Cisco

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

Réponses aux questions d'entretien

Utilisateur anonyme

24 févr. 2015

one int = 4 bytes.

Utilisateur anonyme

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