2017-03-27 42 views
0

每当我尝试在一个struct成员(这是一个静态char数组)和一个dirent结构的d_name属性(用于读取目录)上使用strcpy时,我的程序不会没有通过那个点。我没有收到任何错误或警告,它只是没有通过它。该结构被全局初始化。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) 

任何有识之士都非常感谢。

+0

你将需要提供一个[MCVE]。 –

+0

什么不“通过这一点”是什么意思?程序是否以非零退出码终止? – user7771338

+0

已更新为输出。 –

回答

1

使用strcpy(以及任何其他与opeation结构或结构特性)它是necesarry分配内存空间,该结构之前:

SearchArgs *args = (SearchArgs*)malloc(sizeof(SearchArgs));