我正在制作一个特里,我需要有人告诉我这段代码有什么问题:
typedef struct node
{
struct node *letters[26]={0};
} node;
我想这样做,以便在节点结构的每个引用中,指针都是null ... 非常感谢您的帮助:)谢谢
答案 0 :(得分:3)
您无法初始化类型。您只能初始化对象
typedef struct node {
struct node *letters[26];
} node;
node mynode = {0}; /* {{0}} or even {{0, 0, 0, 0, ...}} */
答案 1 :(得分: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成员,甚至是数组。)
答案 2 :(得分:2)
你可以采用简单的方法。
您可以创建一个函数,该函数将使用NULL
创建并初始化所有指针,然后返回node
对象。
可能如下所示。
Node* GetMeANode()
{
//Create an object of Node structure here.
//initialize all pointer with `NULL`
// Return it.
}