假设我们分配了一个由10个元素组成的字节数组。定义了访问范围内的任何元素。
我了解超出范围的元素读写是未定义的行为。获取超出范围的数组元素的地址是否是未定义的行为?
示例:
#include <stdint.h>
#include <string.h>
int main(void)
{
uint8_t buf[10];
memset(buf,sizeof(buf));
// Defined behavior
uint8_t a_value = buf[9];
// Defined behavior
buf[0] = 1;
// Undefined behavior?
uint8_t *addr = &buf[10];
}