How do I ensure that the while loop also checks the last node of linked list user_ptr_add?
int create_user(const char *name, User **user_ptr_add) {
    // Initialize user
    User newuser;
    strcpy(newuser.name, name);
    newuser.next = NULL;

    User *curr = *user_ptr_add;

    // Traverse list of users
    while (curr->next != NULL) {
        // Check if name already exists
        if (strcmp(curr->name, name) == 0) {
            return 1;
        }
        curr = curr->next;
    }

    // Add newuser to end of list
    curr->next = &newuser;
    return 0;
}