2011-08-05 83 views
1

我定義了一個簡單的結構這樣的結構:初始化包含文件

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)。

我的問題是:初始化包含FILE元素的結構的最佳做法是什麼?

非常感謝您的幫助。

+0

你要什麼這個結構的價值指針?通過fopen()等正常使用FILE * s有什麼問題? –

+0

我正在開始一個新項目。我已經開始向結構添加更多變量。主要是FLAGS。 – rahmu

回答

3

我想在你的函數sgf_file_new,你想做到這一點:

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

其實,你只初始化爲0。

+0

謝謝。這就是它^^ – rahmu

+0

不客氣。 ;-)如果你沒有問題,請不要忘記驗證迴應。 ^^ – Cedekasme

+0

我是要:)顯然你必須等待15分鐘才能確認答案。在所有情況下,現在都完成了。 – rahmu