Prepend is probably a better way of expressing "insert before" :P
n->p = p->p
I don't see the last one - unless foo should be returning n?
n->p = p->p
I don't see the last one - unless foo should be returning n?
prepend(NULL, &something);
would die if you don't do; if (p != NULL)
p->p = n;
I think, this would be easier in a larger problem where you had context that gave you usage examples. I probably wouldn't ask someone to debug a function floating an a vacuum like I did here. I'd use a trivial but full working program.I don't think I'd expect everyone to get every bug without a little bit of prodding in the right direction. Being able to step through the code and show what it's doing to the data structures would be a first step that would make me happy. Recognizing that the data structure looked like it's a linked list, and finding and and fixing a couple of the bugs, and I'd be very happy.