繁体   English   中英

C中strcpy()的分段错误(核心转储)错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM