我正在做一個線索,我需要有人來告訴我,什麼是錯,此代碼:特里數據結構化
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