c++ - 在 C 中使用无效指针值是否合法?

标签 c++ c pointers

下面的代码是undefined behavior in C++ (尽管它在几乎所有广泛使用的实现上都可以正常工作):

int* pointer; //uninitialized - likely illegal pointer value
pointer++; //incrementing an illegal pointer is UB

上面的代码在C中合法吗?

最佳答案

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

参见 Is storing an invalid pointer automatically undefined behavior?

关于c++ - 在 C 中使用无效指针值是否合法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4076563/

相关文章:

c - 我应该在 c 中使用有限输入的 fgets 还是 scanf?

c - "conversion to non-scalar type requested"这个小代码片段中的错误

c - 无法将数组的引用传递给 C 中的方法

c - 赋值从指针生成整数

c++ - 将图像从 C++ 传递给 Haskell 并取回一个字符串

c++ - 需要透明覆盖窗口在窗口绘图视频上面画线?::MFC,C++,windows::

c++ - WinAPI 从编辑控件中检索文本

c++ - 使用 OpenCV 计算协方差矩阵

c++ - Direct2D:透明父窗口上的不透明子窗口

c++ - 为什么我不能将新对象添加到我的对象指针数组中?