我是C新手,想弄清楚为什么我在下面的代码中遇到了分段错误。我想在这里做的是检查我的第一个参数是否包含.txt,并且无论我是否执行该程序都会打印。为什么我得到分段错误11? [C]
#include <stdio.h>
int main(int argc, char *argv[]) {
char filename = argv[1];
char *txt_filename = filename;
char *check_txt = ".txt";
char *txtvalid = strstr(txt_filename, check_txt);
if (txtvalid) {
printf("You have entered a correct text file!");
}
else {
printf("You have entered an incorrect text file!");
}
}
当我运行此代码时,出现分段错误11.我不确定这是什么意思。谁能帮我吗?
'炭文件名= argv的[1];' - >'的char *文件名= argv的[1];' – kaylum
您应该在编译时加上警告。例如如果您使用'gcc',请使用'gcc -Wall source.c'。 (我可能会添加'-Werror')它会显示'char'分配给'char *'的警告,反之亦然。 – anishsane
你是否传递命令行参数。我认为你需要为txtvalid分配内存 –