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