Why I can\'t dereference a null pointer? That is, why I can\'t read/write memory which address is simply 0?
Does the base pointer of my process have a different addr
The VM page that sits at address (void *)0x0 or NULL is by default not mapped in any modern OS, thus dereferencing a NULL pointer will result in a segmentation violation.
NULL pointers are frequently used as pointers that point nowhere.
Yes, you can obtain the address of your text, stack and heap bases. For stack this is relatively easy, for text and heap you will need to consult /proc/self/smaps (if you have procfs).