c:读取/写入哈希表到文件

标签 c file struct io

我正在尝试使用 fwrite 将哈希表写入 C 文件并使用 fread 读取它。 我有这个结构:

struct table {
    struct person *person_table[SIZE];
};
static struct table hashtable;

当我使用 fread 时,我有

    fread(&hashtable, sizeof(struct table), 1, file)

和fwrite:

    fwrite(&hashtable, sizeof(struct table), 1, file)

但是,我在读取和写入后无法正确访问数据。 有什么问题吗?

最佳答案

您没有将哈希表的数据写入文件。相反,您将指针中包含的地址写入到 struct person 元素,这些地址在反序列化后无效。

您还需要将数据写入文件(伪代码,假设struct person 不包含进一步的指针):

for (person_pointer in person_table) {
  fwrite(person_pointer, sizeof(person), 1, file);
}

关于c:读取/写入哈希表到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12628969/

相关文章:

导出为 jar 后,Java 找不到文件

c - 添加 <windows.h> 时出现结构错误

c - '.' or ' ->'C 结构体访问器

c++ - 使用 Apache Xalan C++ 库改进 XSL 翻译

c - 这段代码中究竟发生了什么?

php - 使用 lsof 查找单个打开文件的最快方法是什么?

c++ - 从同一目录读取图像?

c++ - 如何在结构体中引入dynamic_bitset

c - 理解 if (a>=3) 的 gcc 输出

c - 函数 HMAC_MD5 : Return succes but no value