在C ++中初始化一个指针数组

时间:2013-05-02 05:30:14

标签: c++ arrays struct dynamic-memory-allocation

我有一个非常具体的数据结构问题,我无法弄清楚。对于我的任务,我必须在我的标题的私有部分中有一个动态分配的结构数组。所以,到目前为止,在我的头文件中,我有

struct node{
  int name;
  node *next;};  

在我的私下里,我有

node *adj;

至少据我所知,你将如何设置阵列 然后,在我的.cpp文件中,我有

adj = new node*[];

这引发了一堆错误。但是,当我有

node *adj[n];

在我的cpp中,我的标题中没有任何内容,它可以正常工作。我的问题是如何在我的标题的私有部分中有一个数组,但动态分配我的.cpp空间?

1 个答案:

答案 0 :(得分:2)

您已定义

node *adj;

是指向节点或节点数组的指针。如果你想要一个指向节点的数组,你应该声明

node **adj;

是指向节点的指针或指向节点的指针数组的指针。在第一种情况下,使用

分配数组
adj = new node[n];

定义了一个节点数组。在第二个你使用

adj = new node*[n];

定义了一个节点指针数组。

adj = new node*[];

应该没有意义,因为它不会告诉编译器有多大的数组。

相关问题