c - 尝试在 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 没有用处)。当它运行时,它立即返回一个分段错误。
解决方案
推荐阅读
- c++ - gnuplot 存在错误 c++。图表不起作用
- node.js - 从 Swagger 自动生成单元测试
- c++ - 调整窗口大小时缩放字体
- c++ - 从内部对象访问外部对象
- sql-server - “GROUP_CONCAT”不是可识别的内置函数名称。- 关键字“FOR”附近的语法不正确
- node.js - AWS Elastic Beanstalk 代理
- prisma - 将连接设置传递给 Prisma 中的 postgresql
- sql - 使用 stuff 方法的数据操作 sql 结果
- django - 如何在`Mymodel.objects.values()`中获取字段列表而不是一个字段
- python - 如何将 ID 分配给坐标集?-Python