negative array index read

Memory - illegal accesses:negative array index read

负的数组索引读取

This is only valid if arr is a pointer that points to the second element in an array or a later element. Otherwise, it is not valid, because you would be accessing memory outside the bounds of the array. So, for example, this would be wrong:

int arr[10];

int x = arr[-2]; // invalid; out of range

But this would be okay:

int arr[10];
int* p = &arr[2];

int x = p[-2]; // valid:  accesses arr[0]

It is, however, unusual to use a negative subscript.

详细:http://stackoverflow.com/questions/3473675/are-negative-array-indexes-allowed-in-c

原文地址:https://www.cnblogs.com/liuzc/p/6714304.html