Hey.
I was in a lecture today about pointers, in C.
It got me pretty interested, so I figured it'd be interesting to go through all memory addresses on a computer and retrieve its value. I ran into a few problems and well..here I am to try and clear my confusion:

  1. Is the first memory address 65536 (0x00010000)? If so, why? Why not just 0?
  2. How do I know the last memory address?
  3. When I try to read some memory addresses I get this error:

    Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

    Why are certain memory addresses 'protected'?
  4. Is what I'm trying to do even remotly possible?