Quote: "So maybe I should set all unallocated pointers to ZERO"
Always. As far as I'm aware, C++ compilers never set default values on their own.
You also haven't said whether you're declaring these pointers on the stack or not. If not, the compiler itself has a say on what the default value is, whereas if on the stack the default value has to be set at runtime (else the value will be whatever was on the stack before).
It should also be noted that for applications that are set up to be able to address above 2GB, 0xcdcdcdcd is a valid address.