why does this not compile and how do i fix it? 
int create_user(const char *name, User **user_ptr_add) {
        if (strlen(name) >= MAX_NAME){
                return 2;
        }
        User *next_node = *user_ptr_add;
        while (next_node != NULL && strcmp(next_node->name, name)) {
                if (next_node->next != NULL){
                        next_node = next_node->next;
                } else {
                        break;
                }
        }
        if (next_node != NULL && next_node->name != NULL && strcmp(next_node->name, name)){
                return 1;
        }
        User *new_user = malloc(sizeof(User));
        new_user.name = malloc(sizeof(char) * MAX_NAME);
        strcpy(new_user->name, name);
        new_user->next = NULL;
        next_node->next = new_user;
        return 0;
}