cpx*_*cpx 4 c++ arrays pointers multidimensional-array
从这个引用,在C中,似乎以下行为是未定义的.
int my_array[100][50];
int *p = my_array[0];
p[50]; // UB
Run Code Online (Sandbox Code Playgroud)
C++ 03或C++ 11中是否有引用证实了这一点?
在+运算符的描述中是.您可能无法在C中取消引用该指针,因为它超过了第一个子数组的结束指针.在C++中,这当前是合法的,因为指针指向一个有效的整数(关系的点在第3节中的某处定义).但是,在两个标准中添加超过50个产生未定义的行为.
最近,DR向c ++委员会发送了关于取消引用这种"有效凭空"指针的规则可能被取消引用的规则,所以我不会依赖它.