gpt4 book ai didi

c - 如何用 C 语言创建一个结构体来存储目录中的日期时间和文件名?

转载 作者:行者123 更新时间:2023-11-30 16:58:11 30 4
gpt4 key购买 nike

我正在尝试创建一个结构来存储目录中文件的文件名和数据时间

  if(dir)
{
struct dirent *file;
struct stat info_;
char buf[256];
int N=0;

struct element
{
char *name;
time_t date;
};
struct element database[N];

while ( (file=readdir(dir)) != NULL )
{
if(file->d_name[0] != '.')
{
strcpy(database->name, file->d_name);
database->date=info_.st_mtime;
N++;
}
}


int i;
for(i=0; i<N; i++)
{
printf("%s",database->name);
printf("%d",database->date);
}

我还想对结构进行排序,但这是此后出现的另一个问题。该程序给我段错误。我不太确定该结构是否正确。我该如何修改它?谢谢

最佳答案

哦,好吧,我想这很明显为什么它会给你带来段错误。

 int N=0;
struct element database[N];

现在仔细观察你做了什么。您创建了一个包含 0 个元素的数组,并尝试在其中存储一些内容。

  strcpy(database->name, file->d_name);

您的数组必须包含足够的空间来存储您想要存储在其中的名称。

实现这一目标的最佳方法是通过 malloc() 使用动态分配的空间;

关于c - 如何用 C 语言创建一个结构体来存储目录中的日期时间和文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39063032/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com