What's wrong with my code
int make_friends(const char *name1, const char *name2, User *head) {
    User *user1 = NULL;
    User *user2 = NULL;
    while(head != NULL){
        if (strcmp(name1, head->name) == 0){
            user1 = head;
        } else if (strcmp(name2, head->name) == 0){
            user2 = head;
        } else{
            head = head->next;
        }
    }

    if ((user1 == NULL) || (user2 == NULL)){
        return 4;
    }

    if (strcmp(name1, name2) == 0){
        return 3;
    }

    if ((strlen(user1.friends) == 10) || (strlen(user2.friends) == 10)){
        return 2;
    }

    for(int i = 0; i < strlen(user1.friends); i++){
        if (strcmp(name2, user1.friends[i]->name) == 0){
            for(int j = 0; j < strlen(user2.friends); j++){
                if (strcmp(name1, user2.friends[j]->name) == 0){
                    return 1;
                }
            }
        }
    }

    user1.friends[strlen(user1.friends)] = &user2;
    user2.friends[strlen(user2.friends)] = &user1;
    return 0;
    


}