首页 > 解决方案 > c中的分段错误核心转储错误

问题描述

每次我运行这个c代码时,我都会遇到一个分段错误(核心转储)......所以数组被打印出来,一切都在打印结束时给我这个分段错误......我试着在if之后休息一下,错误代码没有出现,但它现在只读取一行而不读取多行

int main(int argc, char* arg[]){
    if (argc != 2){ 
        puts("Error: Usage is caesarcipher <offset>");
        exit(1);
    }
    int i = 0;
    int input;
    char array[100];
    while ((input = getchar())!= '\0'){
        if (input == '\n'){
            array[i] = '\0'; 
            printf("%s\n", array);
            i = 0;
        }else{  
            array[i] = input;
            i += 1;}}
        return 0;
    }
}

标签: c

解决方案


您应该检查文档getchar(),尤其是指示错误的返回值。


推荐阅读