函数的返回值问题,这个值返不回去

#include<stdio.h>
#include<string.h>
#define max 128
char *strstr(char *,char *,int);
int main()
{
    int count;
    char str1[max],str2[max];
    
    fgets(str1,max,stdin);
    fgets(str2,max,stdin);
    count=strlen(str2);
    printf("%s",*strstr(str1,str2,count));
    
}
char *strstr(char *p1,char *p2,int count)
{
    int i,n;
    bool flag=0;
    char str[max];
    for(i=0;i<max;i++)
    {
        if(*(p1+i)==*p2)
        {
            for(n=0;n<count;n++)
            {
                if(*(p1+i+n)==*(p2+n))
                flag=1;
                else
                {
                    flag=0;
                    break;
                }
                
            }
        }
        if(flag==1)
        break;
    }
    if(flag)
    return (p1+i-1);
}

这个是个字符匹配的函数,我想知道如何把这个函数要如何把我找到的地址返回回去

你是必须要自己写一个么
string.h里面自带字符串比较函数strstr,你可以直接用