使用T[]访问彼此相邻声明的两个T类型对象是否是未定义的行为?
我最近观看了 Miro Kenjp 关于“不符合标准的 C++:委员会向你隐藏的秘密”的 CppCon 演讲。
在 28:30 ( https://youtu.be/IAdLwUXRUvg?t=1710 ) 他说访问彼此相邻的双打是 UB,我不太明白为什么。有人可以解释为什么会这样吗?
如果是这种情况,那么它的 UB 肯定会以这种方式访问其他东西,例如:
int* twoInts = malloc(sizeof(int) * 2);
int secondInt = twoInts[1]; //Undefined behaviour?