I think you are writing to somewhere other than SDRAM. The MT48LC4M32B2 is a 128M-bit device organized as 4M x 32 bits. So, I think the highest index into a long array is 4095, and an index of 43235 points to who knows where.
I would use the debugger and check to see what locations actually get written when using index 0, 1, and 2 to start with and check memory after each write.
You could also make your array pointers to integers or characters, and thereby increase the number of accessable elements (4096 longs (32-bits each) is the same as 4 x 4096 chars (8-bits each).