gpt4 book ai didi

c - 为什么我在 C 中打印数组时出现段错误?

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

当使用 for 循环使用 printf 打印数组时,我遇到了 SEGFAULT 问题。这是我的来源:

   #include <stdio.h>

int main(){
int a;
int b[4];
unsigned short i;
scanf("%i", &a);
for(i = 0; i <= 3; i++){
b[i] = a % 10;
a = a / 10;
}
for(i = 3; i >= 0; i--){
printf("%i\n", b[i]);
}
return 0;
}

我在第 13 行遇到了错误:

13          printf("%i\n", b[i]);

最佳答案

i 有一个 unsigned short 类型,但是在你的 for 循环中:

for(i = 3; i >= 0; i--)

i >= 0 永远不会为假,因为 i 是无符号的。只需将 i 更改为有符号类型:

int i;

这样就好了。

关于c - 为什么我在 C 中打印数组时出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22420425/

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