1

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

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

我私下里有

node *adj;

也就是说,至少据我所知,您将如何设置阵列。
然后,在我的 .cpp 文件中,我有

adj = new node*[];

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

node *adj[n];

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

4

1 回答 1

2

你已经定义了

node *adj;

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

node **adj;

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

adj = new node[n];

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

adj = new node*[n];

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

adj = new node*[];

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

于 2013-05-02T05:41:01.100 回答