在 C 中保持指针越界(不取消引用)以进行进一步的算术是否安全?
void f(int *array)
{
int *i = array - 1; // OOB
while(...) {
++i;
...
}
}
void g(int *array, int *end /* past-the-end pointer: OOB */)
{
while(array != end) {
...
++array;
}
}
Run Code Online (Sandbox Code Playgroud)
我想象一些极端情况,如果地址是内存的第一个或最后一个......