我想实现一个树trie并在键变量中插入一个示例值我正在使用一个指向指针的指针并创建一个包含100个元素的动态数组,但是我的应用程序在启动后崩溃了。
#include<iostream>
using namespace std;
struct node {
int key;
node **children;
};
int main() {
node *child;
child = new node;
child->children = new node *[100];
child->children[20]->key = 90;
cout<<child->children[20]->key;
return 0;
}
答案 0 :(得分:0)
您需要为child->children[20]
分配内存。您为child->children
分配了内存,但没有为数组中的元素分配内存。您可以按如下方式执行此操作:
for (int i=0;i<100;++i) {
child->children[i] = new node;
}
通过存储node *
,您将存储node
的地址,其中包含nodes
地址数组的地址。这意味着您需要为层次结构的所有三个级别分配内存。您只为其中两个图层分配了内存。