首页 > 解决方案 > 尝试在 CI 中使用 argv[1] 时出现分段错误

问题描述

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define MAX 1000
int main(int argc, char *argv[]){
    if(argc != 2 || (isdigit(argv[1])) != 1 ){
        printf("Usage: ./caesar key");
        exit(1);
    }else{
        int j=atoi(argv[1]);
        int i=0;
        char c[MAX];
        printf("plaintext:  ");
        fgets(c, MAX, stdin);
        int k=strlen(c);
        for(i=0;i<k;i++){
            if(c[i] >= 97 && c[i] <= 122){
                if(c[i] + j > 122){
                }
            }
            }
        }
        return 0;

}

这就像一个基本的加密代码(不完整,因为包含完整的代码 imo 没有用处)。当它运行时,它立即返回一个分段错误。

标签: csegmentation-fault

解决方案


推荐阅读