![](/img/trans.png)
[英]C++: ways to free a dynamic array (member of a struct) and a pointer to this struct
[英]C++ struct - pointer to pointer and dynamic array
我想实现一个树特里并将一个示例值插入到键变量中,我正在使用一个指向指针的指针并创建一个包含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;
}
您需要为child->children[20]
分配内存。 您为child->children
分配了内存,但没有为数组中的元素分配内存。 您可以按照以下步骤进行操作:
for (int i=0;i<100;++i) {
child->children[i] = new node;
}
通过存储node *
您正在存储的地址node
包含的地址的数组的地址nodes
。 这意味着您需要为层次结构的所有三个级别分配内存。 您仅为两个层分配了内存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.