Have you tried changing struct sockaddr *ifa_addr; with struct sockaddr *ifa_addr __attribute__((aligned(2))); in your declaration of struct ifaddrs? That attribute lets you force an arbitrary alignment for a variable. Cheers, Luca