【发布时间】:2020-08-09 22:14:59
【问题描述】:
正如您在代码中看到的,我为指针分配了不同的值:
- fin->siguiente = nuevo_nodo;
- fin = nuevo_nodo;
这有什么不同吗?
void append(Nodo *&frente, Nodo *&fin, int valor){
Nodo *nuevo_nodo = new Nodo();
nuevo_nodo->valor = valor;
nuevo_nodo->siguiente = nullptr;
if(empty(frente)){
frente = nuevo_nodo;
}
else{
fin->siguiente = nuevo_nodo;
}
fin = nuevo_nodo;
}
【问题讨论】:
-
您的问题似乎是 XY 问题。请参阅:What is the XY problem?。您似乎正在为如何从节点形成链接列表而苦苦挣扎。你到底想完成什么?
-
我看到了
0x56021db72e ->f<- 0和0x56021db72e ->d<- 0的区别 -
您显示的输出包含 4 行和 3 个不同的地址。第二行和第四行是相同的 - 但这并不奇怪,因为它们打印
ptr和ptr3,输出前的最后一行是ptr = ptr3;那么“没有区别”是什么意思 - 你是什么意思期望与其他人有所不同? -
我已经更新了问题
-
当然,这两个赋值修改了两个不同的对象。一个修改
fin->siguiente,另一个修改fin。