You should search, there are many tutorials. Some universities(like MIT) have open courseware platforms(OCW) where they publish their courses materials(slides, assignments, exams, etc). You could search for these and follow the course at your own pace, then try to solve the assignments just like you would if you were really enrolled in the course. Usually the assignments are pretty complex so they'll force you to learn and use C.
Look for C courses and courses on data structures using C, I believe implementing lists/heaps/graphs by hand is the best way to understand pointers and memory management. As a tip, when you do dynamic memory allocation always use a tool like valgrind to make sure you freed the entire memory you allocated. It is a good exercise to help you learn how to keep track of memory allocations.