我已经为此苦苦挣扎了一个多小时,但我似乎无法找出为什么会出现此错误。
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/