C++ 查找显示链接列表时的错误
假设我们有一个List类,其中有一个名为front的数据成员,它是一个节点指针。下面是一个成员函数,用于显示列表(调用对象)的成员 它有一个错误。用几句话识别并描述错误 话。然后纠正错误C++ 查找显示链接列表时的错误,c++,c++11,data-structures,linked-list,C++,C++11,Data Structures,Linked List,假设我们有一个List类,其中有一个名为front的数据成员,它是一个节点指针。下面是一个成员函数,用于显示列表(调用对象)的成员 它有一个错误。用几句话识别并描述错误 话。然后纠正错误 void display () { Node *temp= new Node; temp=front; while (temp!=NULL) { cout<<temp->data<<"\t";
void display ()
{
Node *temp= new Node;
temp=front;
while (temp!=NULL)
{
cout<<temp->data<<"\t";
temp=temp->next;
}
}
void显示()
{
Node*temp=新节点;
温度=前部;
while(temp!=NULL)
{
库特
首先,您不需要在这里调用new。只需声明指针并同时分配它
其次,由于您确实调用了new,所以您刚刚创建了一个内存泄漏,也就是说,您分配的内存现在无法释放(直到程序关闭)
第三,您应该使用访问器方法访问front
myList.GetFront() //this should return a pointer to the front of the list
为什么?如果你不小心做了这样的事情会怎么样
front = front->next;
您刚刚丢失了指向列表前面的指针,其他所有使用front的方法也是如此
首先,您不需要在这里调用new。只需声明指针并同时分配它
其次,由于您确实调用了new,所以您刚刚创建了一个内存泄漏,也就是说,您分配的内存现在无法释放(直到程序关闭)
第三,您应该使用访问器方法访问front
myList.GetFront() //this should return a pointer to the front of the list
为什么?如果你不小心做了这样的事情会怎么样
front = front->next;
您刚刚丢失了指向列表前面的指针,其他所有使用front的方法也是如此。Display不应该有一个new
@drescherjm我需要删除创建的新节点吗?@user597654-在用指向另一个o的指针覆盖temp之后,您如何处理分配给temp的内存块Object?如果你没有使用内存,为什么还要调用New?我需要删除创建的新节点吗?在display()中根本不要使用New
)
这就是错误所在。根本不需要分配新节点。将节点*temp=new node;
更改为节点*temp=front;
并删除下一行。显示()中也不应该有删除
也可以。显示器不应该有一个new
@drescherjm我需要删除创建的新节点吗?@user597654-在用指向另一个对象的指针覆盖temp后,你对分配给temp的内存块做了什么?如果你不使用内存,为什么还要调用new?我需要删除网元吗创建了哪个节点?在display()
中根本不使用new
,这就是错误所在。根本不需要分配新节点。将node*temp=new node;
更改为node*temp=front;
并删除下一行。display()中也不应删除
也可以。如果这是一个家庭作业问题,我想要学分;)这根本不是一个家庭作业问题。我在练习时遇到了这个问题。谢谢你澄清错误。如果这是一个家庭作业问题,我想要学分;)这根本不是一个家庭作业问题。我在练习时遇到了这个问题。谢谢你澄清错误。