int make_post(const User *author, User *target, char *contents) {
    if (author == NULL || target == NULL){
        return 2;
    }
    int friends = 0;
    for (int j = 0; j < 10; j++){
        // doing this for author cuz if they're friends - it's symmetric
        if (target->friends[j] != NULL && strcmp(target->friends[j]->name, author->name) == 0){
            friends = 0;
        }
        friends += 1;
    }
    if (friends == 0){ // means that they are friends
     // create new post struct as they are friends
        Post *new_post = malloc(sizeof(Post));
        strcpy(new_post->author, author->name);
        strcpy(new_post->contents, contents);   
        *new_post->date = time(0);   

        if (target->first_post == NULL){
            target->first_post = new_post;
        }

        Post *curr = target->first_post;
        target->first_post = new_post;
        new_post->next = curr;
        
        return 0;

    }
    return 1;   
    
}

does the function do the following?
Make a new post from 'author' to the 'target' user,
 containing the given contents, IF the users are friends.
 
 Insert the new post at the *front* of the user's list of posts.

'contents' is a pointer to heap-allocated memory - you do not need to allocate more memory to store the contents of the post.
 
 Return:
  - 0 on success
  - 1 if users exist but are not friends
  - 2 if either User pointer is NULL
