I searched in the web but couldn’t find a reliable answer.
And what would
someclass* ptr = 1;
char* charptr = 2;
or assigning them to any other integer mean?
What happens if I don’t initialize pointers (for native data pointers as well as class pointers) before using them?
Yes, in C++ NULL is defined to be 0. Setting a pointer to some other small integer value would mean it pointed to a — likely illegal — portion of the computer’s memory (but it wouldn’t be considered a NULL pointer).
If you don’t initialize a global pointer it will be set to zero (NULL) for you just before the program starts. If you don’t initialize pointer variables declared on the stack (i.e. as within functions or methods) they will have garbage in them. Likewise, the contents of any dynamically allocated pointer or any contained in an object as a data member also will have no predefined value. Some compilers have extensions that allow requests for dynamically allocated memory to be initially zeroed, like C’s
calloc()function does for raw memory.