我有以下结构:初始化的结构,它包含一个指向数组
typedef struct TRIE_NODE
{
char* word;
struct TRIE_NODE* node[26];
}TRIE_NODE;
我创建一个名为头,TRIE_NODE *head = NULL;
节点,然后我尝试使用以下函数来初始化该节点:
void initialize_node(TRIE_NODE *current_node)
{
int MAX = 25;
current_node = malloc(sizeof(TRIE_NODE));
for(int i = 0; i < MAX; i++)
{
current_node->node[i] = NULL;
if(current_node->node[i] == NULL)
printf("\n -- \n");
}
}
但是,每当我尝试读取current_node->node[i]
时,我都会遇到分段错误。有谁知道发生了什么?考虑到current_node->node
是一个指针,指向另一个类型为TRIE_NODE
的指针,我不应该通过括号表示法来访问它的值吗? (我试过取消引用过它,它不会编译)
'node'是一个指针数组,而不是一个指针数组!不清楚你想完成什么。数组不是指针,反之亦然! – Olaf
@Olaf是不是'node'指向一个可以容纳26个单元的'TRIE_NODE'的内存块?我只是试图将这26个单位初始化为空。 – Selhar
我觉得我的评论很清楚。 **不,不是的! – Olaf