c - 检查 if (char == '\n' ) 时出现段错误

标签 c segmentation-fault getchar

我已经为此苦苦挣扎了一个多小时,但我似乎无法找出为什么会出现此错误。

int  inp, count;
char numBuff[21];

count = 0;
while((inp=getchar()) != EOF) { // get Value (last field)
    printf("input is '%c'\n", inp);
    if (inp == '\n') break;
    if (inp == ' ') {
        continue;
    }
    numBuff[count++] = inp;
    printf("go back through loop\n");
}
printf("Out!");
numBuff[count] = '\0';

如果我输入 1013 我会得到以下内容

input is '1'
go back through loop
input is '0'
go back through loop
input is '1'
go back through loop
input is '3'
go back through loop
input is '
'
Segmentation fault (core dumped)

我能从中收集到的唯一信息是,当我检查 inp == '\n' 时它失败了,但为什么呢?我将循环 printf 的返回移动到检查 if inp == '\n' 之后,但它也从未到达那个位置,所以我知道它正在那里发生。

最佳答案

count 未初始化,用作数组索引。初始化为0。

关于c - 检查 if (char == '\n' ) 时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16114617/

相关文章:

c - C语言中使用getchar()读取输入时是否需要分配内存?

c - 如何在 #include<stdio.h> 和 int main() { } 之间添加换行符

c - 如何在c中获取文件长度?

c - C 中的交换问题 [初学者]

c++ - 如何从远程线程 DestroyWindow?

c - 设置指针值时出现段错误

c - 检测空格是否被按下3次?

c - 为什么这个 for 循环在第二个索引处结束?

c - Sprintf 段错误

segmentation-fault - Ruby Digest::SHA512.hexdigest 在 Yosemite 中引发段错误并退出