gpt4 book ai didi

c - 一字节指针在 C 中仍然有效吗?

转载 作者:太空狗 更新时间:2023-10-29 17:22:53 25 4
gpt4 key购买 nike

我可能弄错了,但我似乎记得对于给定的内存分配,例如

char *p = malloc(4);

指针 p 是分配范围内所有字节的有效指针分配范围之外的第一个字节。

因此,要通过指针p 访问内存,只有偏移量p[0] .. p[3] 是有效的。但是对于指针比较,&( p[4] ) 也是一个有效的指针。

这是正确的吗?在 C 标准 ( link ) 中是这样说的吗?似乎6.5.9 p6可能会提示答案的正确方向,但仍然有点模糊。

最佳答案

&p[4]p + 4 是一个有效的指针,但不能取消引用。

C11 6.5.6 Additive operators

[...] If both the pointer operand and the result point to elements of the same array object, or one past the last element of the array object, the evaluation shall not produce an overflow; otherwise, the behavior is undefined. If the result points one past the last element of the array object, it shall not be used as the operand of a unary * operator that is evaluated.

关于c - 一字节指针在 C 中仍然有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22343521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com