Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何创建指向结构的指针数组?C++;_C++_Arrays_Pointers_Struct - Fatal编程技术网

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

C++ 如何创建指向结构的指针数组?C++;,c++,arrays,pointers,struct,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;

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

  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;
}
struct节点
{
字符串数据;
节点*链;
};
int tablesize=10;
节点*ptr[表大小];
对于(i=0;idata=“空”;
ptr[i]->chain=NULL;
}
如果我理解正确,首先我创建一个由10个指针组成的数组,然后给每个指针分配一个新节点?为什么只有在我两次取消引用它时它才起作用?
(ptr[i]->data=“Empty”;

ptr[i]
是一个
节点*
,因此您必须使用
->


(您没有取消引用)

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

因为
ptr[i]
是指针。您没有取消引用两次。顺便说一句,您使用的是可变长度数组(VLA)那不是标准的C++。不要忘记清理你的混乱……不,你会怎么称呼它?那么,说节点*PTR [表]是正确的,实际上是指针数组的指针?@ ReBooTo.88-不,它是指向“代码>节点< /COD>的指针数组。就像<代码> int [10 ] < /Cord>是一个INTS数组。我认为这是因为:节点*PTR [表];与写入相同:节点**ptr=new节点*[tablesize];