Learning C syntax is pretty easy. Learning to use the standard library is mostly a matter of reading man pages and other people's code. But I found understanding pointers and memory management completely opaque until I read that book. It definitely brought me from "beginning C hacker flailing about" to "intermediate C hacker flailing about in a more dangerous way".
I recently read this book and it's the best book I've ever read about pointers in C:
Understanding and Using C Pointers
Core techniques for memory management
By Richard Reese
Publisher: O'Reilly Media
Released: May 2013
Get dozens of book recommendations delivered straight to your inbox every Thursday.