如何创建一个指向结构的指针数组? C ++

时间:2013-10-30 08:19:13

标签: c++ arrays pointers struct

我写了这段代码,我不确定它是如何工作的,但是它有效。这是代码:

  struct node
{
    string data;
    node *chain;
};

   int tablesize=10;

  node *ptr [tablesize];

  for (i=0; i<tablesize; i++)
{
    ptr[i]=new node;
    ptr[i]->data="Empty";
    ptr[i]->chain=NULL;
}

如果我理解正确,首先我创建一个包含10个指针的数组,然后我为每个指针分配一个新节点?为什么它只在我取消引用它两次时才有效? (ptr [i] - &gt; data =“Empty”;)

2 个答案:

答案 0 :(得分:1)

因为ptr被声明为指针数组。因此ptr[i]是指向节点的指针。因此,您需要取消引用它才能访问指向的权利。

答案 1 :(得分:0)

ptr[i]node*,因此您必须使用->

(你没有取消参考)