2011-06-21 99 views
0

我正在做一個線索,我需要有人來告訴我,什麼是錯,此代碼:特里數據結構化

typedef struct node 
{ 
struct node *letters[26]={0}; 

} node; 

我想要讓這個在節點結構的每一個參考,指針全部爲空... 您的幫助將不勝感激:)謝謝

回答

2

你可以用簡單的方法去。

您可以創建一個函數,它將創建並初始化所有指針,然後返回node對象。

可能如下。

Node* GetMeANode() 
    { 
     //Create an object of Node structure here. 
     //initialize all pointer with `NULL` 
     // Return it. 
    } 
3

您無法初始化類型。您只能初始化對象

typedef struct node { 
    struct node *letters[26]; 
} node; 

node mynode = {0}; /* {{0}} or even {{0, 0, 0, 0, ...}} */ 
+1

請注意,「{0}」是通用零初始值設定項。它適用於一切:'int foo = {0};雙槓= {0}; char列表[100] [10] = {0};' – pmg

2

不能初始化這樣的結構的成員,但你可以在實例化時初始化它們,或者寫一個初始化函數:

#include <string.h> 

typedef struct node 
{ 
    struct node *letters[26]; 
} node; 

void initNode(node * n) { memset(n->letters, 0, 26 * sizeof(node *)); } 

void foo() 
{ 
    /* aggregate initialization, efficient */ 
    node n = { 0, 0, 0, /* 26 times */ }; 

    /* helper function */ 
    node m; 
    initNode(&m); 
} 

(如果這是C++ 0x,你可以在默認構造函數的基初始化列表中初始化struct成員,甚至是數組。)