我是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分配內存 –