[英]Segmentation fault (core dumped) error by strcpy() in C
我正在尝试编写一个可以读取/写入rolodex信息的程序(默认情况下该文件名为myRolodex)。 但我认为这一行: strcpy(filename,"myRolodex");
导致我的GCC编译器出现分段错误(内核已转储)。
修复任何帮助将不胜感激!
#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;
}
如下更正您的代码
if (argv[1]==NULL){
strcpy(filename,"myRolodex");
}else{
strcpy(filename,argv[1]);
}
问题是,即使您检查argv [1] == NULL,语句strcpy(filename,argv [1]);也是如此。 将始终执行,因为它不在else块中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.