Understanding and Using C Pointers (Core Techniques for Memory Management)