我有一个链表节点,我想编写一个释放节点的函数。
但为了做到这一点,我必须更新上一个节点的下一个变量。
我可以访问previous_node吗?>下一个(previous_node->next->!next)?
struct node
{
struct node *next;
}
void free_node(struct node *previous_node)
{
free(previous_node->next);
previous_node->next = previous_node->next->next; // can i do it or i have to store previous_node->next->next in a variable before freeing previous_node->next
}
我组装了它,看看是否会有任何差异,但我看到我的编译器优化了它,使其符合我的写作方式。