C 中 strcpy() 的分段错误(核心转储)错误
Segmentation fault (core dumped) error by strcpy() in C
我正在尝试编写一个可以 read/write 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,statment strcpy(filename,argv[1]);将始终执行,因为它不在 else 块中。
我正在尝试编写一个可以 read/write 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,statment strcpy(filename,argv[1]);将始终执行,因为它不在 else 块中。