0

我正在尝试使用 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)

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

4

1 回答 1

0

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

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

for (person_pointer in person_table) {
  fwrite(person_pointer, sizeof(person), 1, file);
}
于 2012-09-27T19:50:08.550 回答