I just wrote my first real bit of c code for an assignment: An enqueue and dequeue method for a linked list!
(It's probably really horrible, but this was the first time I wrote c, so don't judge me too hard please D:)
I find, when writing these kinds of data structure manipulators, that a good approach is after writing it, try to break it. Testing isn't just about showing it works, but also showing that it doesn't not work, if you see what I mean :-)
Soaryn your code!