首页 > 解决方案 > 指向 C 函数中的指针的指针

问题描述

我有结构用户

struct User
{
    char login[LOG_IN]; 
    char password_hash[PASS_IN]; 
    struct User* next; 
};

而且我有可能改变参数指针的函数。

void deleteFirstUser(User** head)
{
    //something like
    *head = *head->next;
}

它是如何工作的?

标签: cpointers

解决方案


要删除head单个链表中的元素,您需要
1) 为下一个元素分配临时指针head
2) 调用 free head
3) 分配head临时指针

代码

void deleteFirstUser(User **head){
    User *tmp;
    tmp=(*head)->next;
    free(*head);
    (*head)=tmp;
    return;
}

推荐阅读