Understanding Memory Management, Part 1: C