[问题] C在linked list中assign node的问题?

楼主: vhunter (SPC)   2025-01-13 15:56:49
大家好,最近在实作linked list
最下面是程式的节录
AddAtHead是想将node新增在linked list的开头
在AddAtHead中的注解是compile会过答案正确的程式,它的下面三行是我有问题的部分
它们的错误输出范例是如果我有一个linked list是2->7,想在前面加一个1的node
此时会变成1->7而不是1->2->7
印(obj->val,obj->next->val)和(tem->val,tem->next->val)出来都是(1,7)
我一开始想将obj指向linkedlist的头所以用obj=tem;
我以为的错误会是obj和tem变成循环的linked list或是都变成1->2,结果是1->7,百思
不得其解
所以想问大家知道这个运算obj=tem;中发生了什么事?
为什么只要像注解一样避开obj=tem;就可以?
谢谢大家
typedef struct linklist{
int val;
struct linklist *next;
} MyLinkedList;
void AddAtHead(MyLinkedList* obj, int val) {
MyLinkedList* tem = malloc(sizeof(MyLinkedList));
// tem->val=obj->val;
// tem->next=obj->next;
// obj->val=val;
// obj->next=tem;
tem->val=val;
tem->next=obj;
obj=tem;
}

Links booklink

Contact Us: admin [ a t ] ucptt.com