作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个结构来存储目录中文件的文件名和数据时间
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/
我是一名优秀的程序员,十分优秀!