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

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

初始化函数如下:
SGFile* sgf_file_new (void){
    GFile* sgf = {NULL};
    return sgf;
}

在我的主程序中,我试图像这样初始化我的函数:
SGFile* sgf = sgf_file_new();

这显然不是我想做的,因为sgf仍然指向NULL(0x000000)。
我的问题是:初始化包含文件元素的结构的最佳实践是什么?
非常感谢你的帮助。

最佳答案

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

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

实际上,您只使用值0初始化了指针。

关于c - 初始化包含文件的结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6962782/

10-09 12:32