A linked list implementation in C