gpt4 book ai didi

c - 从超出数组的指针指向数组访问是否安全?

转载 作者:太空宇宙 更新时间:2023-11-04 00:43:22 24 4
gpt4 key购买 nike

对于循环的问题措辞表示歉意,但归结为这一点。我正在维护执行如下操作的 C 代码:

char *foo = "hello"
int i;
char *bar;

i = strlen(foo);
bar = &foo[i];

这样安全吗?是否会出现 foo[i] 在获得指针之前导致段错误且未被编译器覆盖的情况?

最佳答案

是的,您可以在数组末尾之外设置一个指针(尽管您实际上并没有在代码中这样做——您指向的是 NUL 终止符)。

请注意,解引用 指针设置为超出数组末尾的指针时的行为是未定义的。

(请注意,C 标准要求在不取消引用指针的情况下评估 &foo[i]:即 &foo[i + 1] 是有效的,但是 foo[i + 1] 本身不是。)

关于c - 从超出数组的指针指向数组访问是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56794178/

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