указатель на указатель в C функциях - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть структура User

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

И у меня есть функция, которая может изменить указатель аргумента.

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

Как это может работать?

1 Ответ

0 голосов
/ 29 апреля 2020

Чтобы удалить элемент head в одном связанном списке, вам нужно
1) назначить временный указатель на следующий элемент head
2) позвонить бесплатно на head
3) назначить head временный указатель

код

void deleteFirstUser(User **head){
    User *tmp;
    tmp=(*head)->next;
    free(*head);
    (*head)=tmp;
    return;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...