array index

I’m sorry if my mistake is obvious, or if I missed something important in documentation,
but I’ve found very strange effect. In purified form it can be observed at senseless
programm “massive.cu” (see attachment). Under windows it works (output “massive.win” (see tail comment in *.cu file) seems to be
correct). But under Open SUSE 11.2 only “correct” version of function works
correctly (output “massive.out” (see tail comment in *.cu file)). I can’t see any difference between “correct” and “wrong”
versions of function. The effect is machine-independent (it observed for GEFORCE 540M in
i7-notebook and for GEFORCE 560 in 4-core Pentium)

Programm was compiled under toolkit 4.0 as:

nvcc -arch=sm_20 -o massiv massiv.cu -lm

P.S. Sorry for broken english.