c - strcpy不使用struct member和d_name

时间:2017-03-27 21:04:25

标签: c directory strcpy

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

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)

非常感谢任何见解。

1 个答案:

答案 0 :(得分:1)

在使用strcpy(以及任何其他结构或结构属性的操作)之前,为该结构分配内存空间是必要的:

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