【发布时间】:2016-09-20 23:02:03
【问题描述】:
当我尝试声明以下函数时
typedef struct TRIE_NODE
{
char* word;
struct TRIE_NODE node[26];
}TRIE_NODE;
我收到以下错误:
'struct TRIE_NODE'的定义直到结束'}'才完成
然而,如果我用一个指向 26 个节点的指针声明这个函数,它编译得很好。
typedef struct TRIE_NODE
{
char* word;
struct TRIE_NODE* node[26];
}TRIE_NODE;
我想,因为这不是一个实例,所以我不可能获得指向这 26 个数组中的第一个的指针,但如果这是问题所在,TRIE_NODE* node[26] 怎么不是问题?这个声明不是等同于TRIE_NODE node[1][26]吗?
【问题讨论】:
-
您正在尝试定义的结构的结构内声明一个结构...说快 10 倍 ;)
-
即使它确实有效,它不会是无限大的。由于每个 TRIE_NODE 包含 26 个 TRIE_NODES,每个 TRIE_NODES 包含 26 个 TRIE_NODE,依此类推...
-
“这个声明不等于
TRIE_NODE node[1][26]吗?” - 不,不是。为什么? -
“当我尝试声明以下函数时” - 哪个函数?没有功能!而且数组不是指针也不是数组!
-
为什么投反对票?感觉这是一个很好的问题,它有一个很好的答案
标签: c struct declaration definition