I recently saw an article that mentioned that null pointers in C/C++ were actually not simply zero but were interpreted by the compiler to whichever allocation address was null for the platform.
https://stackoverflow.com/a/2760172/2027262
This tied in with something I saw when debugging c++ in Visual Studio where a pointer's value was 0xCACACACA (or something like that) when it was a bad pointer (but this could just be a value displayed for our benefit).
So long-story-short, what are the REAL null pointer addresses for a platform (such as windows)? Or was I misunderstanding the answer completely?
EDIT:
Also, (just as an extension) what did this?
int i = 0;
// pretend to do some stuff with i
char* = (char*)i;
Would the compiler set the pointer to null at run time or would it set it to zero? And if it does the latter is that UB? Will it break the program?