2017-03-27 1 views
0

strcpyを構造体メンバ(静的char配列)とdirent構造体のd_name属性(ディレクトリの読み込みに使用)で使用しようとするたびに、その点を過ぎてしまう。私はエラーや警告を受け取っていない、それは単にそれを渡されません。構造体はグローバルに初期化されます。c - strcpyがstructメンバーとd_nameで動作しない

typedef struct SearchArgs 
{ 
    char inputFile[MAXDIRPATH]; 
    char word[MAXKEYWORD]; 
    Buffer * buffer; 
}SearchArgs; 

SearchArgs * args;//arguments for seachFile 

...

dir = opendir(nextItem.path);//opens the next directory 

...

dp = readdir(dir); 

...

printf("dname: %s\n", dp->d_name);//prints 
printf("args->inputFile: %s\n", args->inputFile);//prints 
strcpy(args->inputFile, dp->d_name);//not getting passed this point 
printf("TEST1\n");//doesn't print 

出力:

dname: file2.txt 
args->inputFile: (null) 

洞察力は大変ありがとうございます。 strcpyを使用する前に

+0

あなたは[MCVE]を提供する必要があります。 –

+0

「この点を通過していない」とはどういう意味ですか?プログラムはゼロ以外の終了コードで終了しますか? – user7771338

+0

出力で更新されました。 –

答えて

1

(及び構造体または構造体の特性を持つ他のopeation)その構造体のためのメモリ領域を割り当てるnecesarryです:

SearchArgs *args = (SearchArgs*)malloc(sizeof(SearchArgs)); 
関連する問題