They're used in most C/C++ programs. (Technically all, because functions are used as pointers ).

And you can't just put a value into a pointer and read the memory at that location, because the memory protection prevents you using memory outside of your program. You'd actually have to allocate extra memory, or know EXACTLY where your program is in memory.