在C中使用合法的无效指针值?

sha*_*oth 2 c c++ pointers

以下代码是C++中未定义的行为(虽然它几乎可以在任何广泛使用的实现上运行):

int* pointer; //uninitialized - likely illegal pointer value
pointer++; //incrementing an illegal pointer is UB
Run Code Online (Sandbox Code Playgroud)

以上代码在C中是否合法?

Cha*_*via 8

它在C中也是未定义的行为,因为在某些体系结构中,将无效指针加载到寄存器会触发硬件故障.

请参阅是否存储无效指针自动未定义的行为?

  • @valdo:喜欢它,如果你想,但这是错的. (2认同)