/*
 * Make two users friends with each other.  This is symmetric - a pointer to
 * each user must be stored in the 'friends' array of the other.
 *
 * New friends must be added in the first empty spot in the 'friends' array.
 *
 * Return:
 *   - 0 on success.
 *   - 1 if the two users are already friends.
 *   - 2 if the users are not already friends, but at least one already has
 *     MAX_FRIENDS friends.
 *   - 3 if the same user is passed in twice.
 *   - 4 if at least one user does not exist.
 *
 * Do not modify either user if the result is a failure.
 * NOTE: If multiple errors apply, return the *largest* error code that applies.
 */
int make_friends(const char *name1, const char *name2, User *head) { 

    User *user1 = find_user(name1, head); 
    User *user2 = find_user(name2, head); 
    User friends_list1 = user1->friends[MAX_FRIENDS]; 
    User *friends_list2 = user2->friends[MAX_FRIENDS]; 

    

    if (user1 == user2) { 
        return 3; 
    }

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

    for (int i = 0; i < MAX_FRIENDS; i++) { 
        if (strcmp(friends_list1[i].name, user2->name) == 0) { 
            return 1; 
            break; 
        } else { 
            curr = head; 
            if (strcmp(friends_list1[i].name,"") == 0) { 
                strcpy(friends_list1[i].name, user2->name); 
                break; 
            }
        } 
        curr = curr->next; 
    }
Make two users friends with each other.  This is symmetric - a pointer to each user must be stored in the 'friends' array of the other.
 New friends must be added in the first empty spot in the 'friends' array.