4.14.2 Checking for Undefined Pointers

Until a pointer has been explicitly assigned a value, its value is undefined. Its value can be completely random, or it can be some consistent value (such as 1) that does not point to a useful data address.

Accessing a value through an uninitialized pointer address can cause inexplicable or erratic application behavior, because the data is not being read from or written to the intended location. For example, suppose that var1 is mistakenly written to the address specified by an uninitialized pointer and that then var2 is written there. When var1 is read back, it does not have its original value, having been replaced by var2.