>but different OS' will respond to it differently
Yes, this is generally what is meant by undefined behavior.
>windows will just terminate the program while some other systems will allow you read access to this memory.
Then it seems Windows is the better system in this case. I and every other programmer I know would prefer the program to crash in huge, obvious bursts of flame than quietly overwrite memory and maybe linger for years before the bug is found.
>i already admited to missunderstanding the intent of the question.
Your example stating that *(p + 2) would work and p[2] would fail when both are exactly the same implies that your misunderstanding runs deeper. If I'm incorrect on that point then further examples where the failing case is perfectly valid should be avoided so as not to confuse me.
-Prelude