and*_*ndy 3 c pointers pass-by-value
我已经给出了一个函数foo(struct node *n),其中n是链表中的头节点.现在foo应该改变n它指向列表的末尾.
但这个功能签名是否可行?
假设t是指向列表末尾的指针:
n = t 将无法工作,因为指针是按值传递的.*n = *t 将无法工作,因为我会覆盖列表的头部.我错过了什么?
您需要使用指针指针:
foo(struct node **n)
Run Code Online (Sandbox Code Playgroud)
要改变n指向的内容,您需要:
*n = t;
Run Code Online (Sandbox Code Playgroud)