That is incorrect. The pointer is assigned whatever random value is at that memory location. For example
char *ptr;
the address of ptr is whatever is at that memory location on the stack (assuming its not a global variable). It is never auto set to NULL by the compiler in either C or C++ languages.
But my C++ Book says so, by the way, why are we otherwise checking whether an assignment has failed or not using if(ptr == NULL)
?