So, out of the blue, the compiler decides to spit this in face: \"field customer has incomplete type\".
Here\'s the relevant snippets of code:
In C, the compiler needs to be able to figure out the size of any object that is referenced directly. The only way that the sizeof(CustomerNode) can be computed is for the definition of Customer to be available to the compiler when it is building customer_list.c.
The solution is to move the definition of the struct from customer.c to customer.h.