我正在做一个线索,我需要有人来告诉我,什么是错,此代码:特里数据结构化
typedef struct node
{
struct node *letters[26]={0};
} node;
我想要让这个在节点结构的每一个参考,指针全部为空... 您的帮助将不胜感激:)谢谢
我正在做一个线索,我需要有人来告诉我,什么是错,此代码:特里数据结构化
typedef struct node
{
struct node *letters[26]={0};
} node;
我想要让这个在节点结构的每一个参考,指针全部为空... 您的帮助将不胜感激:)谢谢
你可以用简单的方法去。
您可以创建一个函数,它将创建并初始化所有指针,然后返回node
对象。
可能如下。
Node* GetMeANode()
{
//Create an object of Node structure here.
//initialize all pointer with `NULL`
// Return it.
}
您无法初始化类型。您只能初始化对象
typedef struct node {
struct node *letters[26];
} node;
node mynode = {0}; /* {{0}} or even {{0, 0, 0, 0, ...}} */
不能初始化这样的结构的成员,但你可以在实例化时初始化它们,或者写一个初始化函数:
#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成员,甚至是数组。)
请注意,“{0}”是通用零初始值设定项。它适用于一切:'int foo = {0};双杠= {0}; char列表[100] [10] = {0};' – pmg