-1

私は C が苦手で、strcpy に問題があります。関数の引数の 1 つを取得して、char 配列に格納しようとしています。これを実行すると、セグメンテーション違反が発生しますが、理由がわかりません。私は何を間違っていますか?ありがとう!

struct bb_state {
    FILE *logfile;
    char *rootdir;
};

struct bb_state *bb_data;
bb_data = malloc(sizeof(struct bb_state));
strcpy(bb_data->rootdir, argv[argc-2]);
4

3 に答える 3

2

にメモリを割り当てる必要がありますchar* rootdir

例:

int len=strlen(argv[argc-2])+1;
bb_data->rootdir=malloc(len);

その後、次のことができます。

strcpy(bb_data->rootdir, argv[argc-2]);
于 2013-04-12T17:05:44.153 に答える