    User *curr_del = *user_ptr_del;
    // Edge case: user to be deleted is first in user list
    if (strcmp(name, curr_del->name) == 0) {
        *user_ptr_del = curr_del->next;
    }
    while ((curr_del->next != NULL) && (strcmp(name, curr_del->next->name) != 0)) {
        curr_del = curr_del->next;
    }
    if ((curr_del->next != NULL) && (strcmp(name, curr_del->next->name) == 0)) {
        // Normal case: user is not at the beginning or end of the user list
        curr_del->next = curr_del->next->next;
        curr_del->next->next = NULL;
    } else {
        // Edge case: user is at the end of the user list
        curr_del->next = NULL;
    }

    free(find_user(name, *user_ptr_del));

    return 0;
delete user