2016-01-06 42 views
-5

我有一个struct在C结构,看起来像这样:写入磁盘它包含一个指向

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

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

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

+4

只需尝试一下,看看会发生什么。这就是答案。 – mikedu95

+1

是的,但这需要比SE上的人更多的时间和精力告诉我答案。 –

+0

'struct Address *' - 指针已经意味着它是一个地址。你有什么意图命名struct“Address”? –

回答

2

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