在显示链接列表中发现错误

时间:2018-10-10 00:43:19

标签: c++ c++11 data-structures linked-list

假设我们有一个List类,其中的数据成员名为front,这是一个Node指针。下面是一个成员函数,用于显示列表的成员(调用对象)。

有错误。识别并描述一些错误 话。然后更正错误。

    void display ()
    {
       Node *temp= new Node;
       temp=front;
       while (temp!=NULL)
       {
         cout<<temp->data<<"\t";
         temp=temp->next;
       }
   }

这是我测试中的问题之一,在上面给定的代码中我找不到任何错误。我什至在编译器中运行了这段代码,效果很好。

谁能告诉错误在哪里?

1 个答案:

答案 0 :(得分:2)

df.repartition('date').write.partitionBy('date').mode(overwrite').orc('path')

首先,您不需要在这里致电new。只需声明指针并同时分配它即可。

第二,因为您确实调用过new,所以您刚刚创建了一个内存泄漏,也就是说,您分配的内存现在无法被释放(直到程序关闭)。

第三,您应该使用访问器方法访问front。

Node *temp = new Node; // a pointer, called temp, allocated to a new block 
                       //of memory of size Node
temp = front // the pointer to the block of memory was just overwritten, and now you 
             //don't have a pointer to the block of memory you just allocated

为什么?好吧,如果您不小心执行以下操作会发生什么:

myList.GetFront() //this should return a pointer to the front of the list

您刚刚失去了指向列表开头的指针,其他所有使用front的方法也是如此。