2011-06-21 51 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成员,甚至是数组。)