The example doesn't actually create a linked list at all. It makes a single EnemySpaceShip, then calls updateShip on that single ship. The structure does have a next pointer which is set to NULL, but that in itself doesn't make it a linked list. The updateShip() function isn't going to magically follow the list and apply to other elements in the linked list. So if you're trying to make a remove() function, maybe you should first create an insert() function?... What exactly is your question?