我正在尝试编写一个可以读取/写入rolodex信息的程序(该文件默认名称为myRolodex)。但我认为行strcpy(filename,"myRolodex");
导致我的GCC编译器出现Segmentation fault(core dumped)。
任何帮助修复都会感激不尽!
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include<stdbool.h>
int main(int argc, char* argv[]){
char filename[250];
if (argv[1]==NULL){
strcpy(filename,"myRolodex");
}
strcpy(filename,argv[1]);
printf("%s",filename);
return 0;
}
答案 0 :(得分:2)
按如下方式更正您的代码
if (argv[1]==NULL){
strcpy(filename,"myRolodex");
}else{
strcpy(filename,argv[1]);
}
问题是,即使你检查argv [1] == NULL,statment strcpy(filename,argv [1]);将永远执行,因为它不在其他块中。