存储无效指针是否会自动导致未定义行为?
在编程中使用指针时,会出现以下问题:是否仅存储无效内存地址在指针变量中构成未定义的行为。许多指针算术运算都依赖于这种实践,而指针本身本质上就是整数。
在某些情况下,甚至将无效指针加载到寄存器中的行为也可能被视为未定义行为。这是因为当尝试进行此类操作时,某些体系结构会自动响应错误。
C 草案标准,第 6.5.6/8 节定义了指针操作数指定数组对象的元素和结果的场景指向距起始元素的元素偏移量,与所使用的整数表达式成正比。
在其他情况下,表达式指向数组对象的最后一个元素。然而,这些情况都不适用于存储无效指针的情况。数组不够大,无法容纳指针偏移调整,初始指针或结果指针也不表示与数组末尾相邻的元素。
以上是在 C 中分配无效的指针地址会自动产生未定义的行为吗?的详细内容。更多信息请关注PHP中文网其他相关文章!