I think technosavvy's got this one nailed down

> Only it depends On Array Implementation in compiler.
There lies the problem. When you have an answer which doesn't work for everyone, it's a sure sign of implementation specific, unspecified or even undefined behaviour. Remember, undefined always includes doing what you expected (or perhaps wanted).

This is even more true in small test case programs where it's all to easy to see behaviour which seems entirely plausible, but it is in fact specific to the compiler. For example, one could routinely get away with uninitialised pointers in small DOS programs, but scale up to a larger program and sooner or later, the mistake is exposed.