【问题标题】:Writing to disk a struct that contains a pointer将包含指针的结构写入磁盘
【发布时间】:2016-01-06 12:19:17
【问题描述】:

我有一个 C 中的结构,如下所示:

struct Database {
    int row_size;
    int name_size; 
    struct Address *;
};

这个结构将通过 malloc(...) 调用放入堆中。然后我将通过另一个 malloc(...) 调用让 struct Address* 指向堆中的另一个区域。

如果我使用 fwrite(...) 将此结构写入磁盘,会发生什么? fwrite(...) 会自动跟随(或取消引用)指针struct Address *,还是会简单地将指针本身(这将无用)复制到磁盘?

【问题讨论】:

  • 只需尝试看看会发生什么。这就是答案。
  • 是的,但这比 SE 上的人告诉我答案需要更多的时间和精力。
  • struct Address* - 指针已经表示它是一个地址。您将结构命名为 Address 的目的是什么?
  • 我在 LCTHW 书中做一个练习。它希望我创建一个具有可变数量记录的数据库(也就是地址——这个数据库存储地址)。
  • man page for fwrite 是什么意思?

标签: c pointers struct malloc


【解决方案1】:

fwrite 将写入结构的内存内容,这意味着它只会将指针本身复制到磁盘,这在您自己的术语中是没有用的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    相关资源
    最近更新 更多