gpt4 book ai didi

c - 如果不使用指针指向无效位置是否可以?

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

<分区>

这里有一个简单的程序来解释我的意思。给定长度 n,它初始化由标准输入读取的 n 个整数序列。

int n, *seq, *current;
scanf("%d", &n);
seq = malloc(n*sizeof(int));
for (current = seq; current - seq < n; current++)
scanf("%d", current);

我怀疑 current 的最后一个增量这使得它指向分配的内存之外的东西。显然,从那个位置读取是错误的。但是,如果我不阅读该位置怎么办?

程序运行正常,但我的问题是:这是一种标准的良好做法,还是可能会引起麻烦并应避免的事情?

更新:如何将其附加到上一个程序的末尾?

for (current--; current - seq >= 0; current--)
printf("%d\n", *current);

根据@MOHAMED 的回答,这是错误的,不是因为它是对无效位置的访问,而是因为 current - seq >= 0 current 时可能会给出错误的结果指向第一个元素之前的一个位置,因此具有未定义的值!

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