>>37
How else would you solve it if any unsigned int can be a valid pointer, and the internal representation of a pointer is an unsigned int? There's simply not enough bits to store the information to store that a pointer is invalid or null. You could reserve a special address to be null, but that has its drawbacks, and in some cases may even be unfeasible.