我正在尝试将一个列表复制到另一个列表,但是它仅复制第一个元素。当我调试它时,它在高亮行显示了错误。 您能帮我解决此错误并向我解释发生了什么问题吗?
.asInstanceOf[Double]
答案 0 :(得分:0)
您仅为List3
列表分配了1个x
节点。
在第一次循环迭代中,x
指向有效的List3
实例。但是您没有初始化其next3
成员。因此,在下一次循环迭代中,x
的值变为不确定,它没有指向有效的内存。
您需要为要复制的每个 值分配一个单独的节点。例如:
void copyList()
{
if (p == NULL)
cout << "Lista este vida\n";
else
{
List1 *c = p;
List3* x = NULL;
List3** px = &x;
do
{
*px = new List3;
(*px)->data3 = c->data;
(*px)->next3 = NULL;
cout << (*px)->data3 << " ";
px = &((*px)->next3);
c = c->next;
}
while (c != NULL);
// use x as needed. don't forget to delete all
// of the nodes when you are done using them!
cout << "\nList has been copied successful\n";
}
}