数组下标为-1的地址对于数组来说是越界访问了,但是这个地址是有意义的这个地址就是所申请的数组存储空间的首地址的向前偏移一个单位(也就是偏移一个当前数组类型所对应的字节数)所对应的地址。
这个地址由于没有跟着数组空间一起初始化,所以其中的数据是不一定的,
如果是正在被系统或者其他APP使用中的地址空间,那么可以被访问,其中的数据的意义取决于被系统或者其他APP所写入的数据,但是访问后,有可能会引起系统或者其他APP异常。
如果是没有被使用的地址,那么就是一个野地址,那么其中的数据是随机的,无意义的。
for example:
判断数组尾部是否存在换行符,如存在则用结束符代替:
char resp[256];
char *e = resp + strlen(resp);
if (e > resp && e[-1] == '\n')
e[-1] = '\0';