繁体   English   中英

C ++结构-指向指针和动态数组的指针

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM