Quote Originally Posted by polarbear View Post
But that happened within the range of the array. How can it be modified by some phantom?
Ok think about 2 arrays declared in sequence...
Code:
char a[16], b[16];
These will be in memory like this...
Code:
AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBB
C does not do range checking... so you can easily walk off the end of one array into the beginning of the next...

Code:
AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBB
xxxxxxxxxxxxxxxxxxxxxxxx
So now you are writing to a[i] but actually changing the contents of array b.