2

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

  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]->data="空";)

4

2 回答 2

1

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

于 2013-10-30T08:22:02.937 回答
0

ptr[i]是一个node*因此你必须使用->

(你没有取消引用)

于 2013-10-30T08:21:31.587 回答