Memory, Addresses, and Pointers
Computers, just like you and me, need a place to work and store things. Think of computer memory like space on a desk, for example. Someone who needs to work on many projects at once needs to have enough desk space for all their papers and documents so they can be quickly and easily accessed. If the desk space is too small for the number of projects being juggled, some projects may have to be filed back into drawers so they can be quickly pulled back once there is more space on the desk. Making sure the desk space is used efficiently is also very important.
Dealing with a computer's memory is one of the more complicated areas of programming. Why is this the case? Surely these problems have been solved ...