【问题标题】:Initializing a struct containing a file初始化包含文件的结构
【发布时间】:2011-08-05 21:21:09
【问题描述】:

我定义了一个这样的简单结构:

typedef struct SGFile SGFile;
struct SGFile{
    FILE* sgf_file;
};

还有一个像这样的初始化函数:

SGFile* sgf_file_new (void){
    GFile* sgf = {NULL};
    return sgf;
}

在我的 main 中,我尝试像这样初始化我的函数:

SGFile* sgf = sgf_file_new();

这显然不是我想做的,因为 sgf 仍然指向 NULL (0x000000)。

我的问题是:初始化包含 FILE 元素的结构的最佳做法是什么?

非常感谢您的帮助。

【问题讨论】:

  • 你想要这个结构做什么?仅在 fopen() 等中正常使用 FILE*s 有什么问题?
  • 我正在开始一个新项目。我已经开始向结构中添加更多变量。主要是FLAGS。

标签: c file struct initialization


【解决方案1】:

我认为在你的函数sgf_file_new 中,你想这样做:

SGFile* sgf_file_new (void)
{
    GFile* sgf = (GFile*)malloc(sizeof(GFile));
    return sgf;
}

其实你只是用值0初始化了指针。

【讨论】:

  • 不客气。 ;-) 如果您同意,请不要忘记验证回复。 ^^
  • 我本来打算 :) 显然您必须等待 15 分钟才能验证答案。在所有情况下,现在都完成了。
猜你喜欢
  • 1970-01-01
  • 2020-05-28
  • 1970-01-01
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
  • 2015-05-04
  • 1970-01-01
  • 2017-07-23
相关资源
最近更新 更多