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

How to create an array of pointers to structs? C++

本文关键字:结构 指针 数组 C++ 何创建 创建      更新时间:2023-10-16

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

  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="Empty";)

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

ptr[i]是一个

node*因此你必须使用->

(您没有取消引用)