p1 holds an address, say 0x0002. That is a real memory address, but it (most likely) does not belong to you (the data there probably belongs to someone else).

You cannot cast a pointer to NULL.
...