Object array parameter--error: field ‘letters’ has incomplete type

Object array parameter--error: field ‘letters’ has incomplete type

 struct Trie {
    Trie letters [27];
    bool hasLetter;
    bool EOW;
    ...
}

错误:字段“字母”的类型不完整

我遇到了这个错误,还没有弄清楚问题出在哪里。我正在尝试使用数组创建一个 Trie,并且我正在使用 g++ 编译器。非常感谢任何帮助。

编译器不会接受包含自身实例的结构,如果它们不是指针的话。你得到的错误是因为声明递归地使用它自己。 (Trie包含一个Trie数组,其中每个元素包含一个Trie数组,其中每个元素还包含一个Trie数组,等等)

如果您真的想要包含自身实例的结构,请将字母更改为指向 Trie 的指针数组。

struct Trie {
    Trie* letters [27]; // array of pointers to other Trie structs
    bool hasLetter;
    bool EOW;
    ... 
}