我写了这段代码,我不确定它是如何工作的,但是它有效。这是代码:
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”;)
答案 0 :(得分:1)
因为ptr
被声明为指针数组。因此ptr[i]
是指向节点的指针。因此,您需要取消引用它才能访问指向的权利。
答案 1 :(得分:0)
ptr[i]
是node*
,因此您必须使用->
(你没有取消参考)