Memory, Runtime Memory Organization, and Virtual Memory
I have always wondered why the concept of a pointer is so dauntingly difficult to grasp. The concept of a pointer can be intuitively understood only if you are able to visualize it in your mind. By “visualizing” I mean being able to represent mentally its storage, lifespan, value, and so forth. Before getting into the nitty-gritty of pointers, however, you need to be equipped with the concepts of memory, runtime memory organization of the program, virtual memory, the execution model, and something of the assembly language.