这个编译有问题,请问这个错误是什么意思?

/*请编写一个函数 void fun(char tt[],int pp[]),统计在tt字符串中"a"到"z"26个字母各自出现的次数,

并依次放在pp所指数组中。例如,当输入字符串abcdefghabcdeabc后,

程序的输出结果应该是:3 3 3 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:*/

#include <stdio.h>

#include <stdlib.h>

void fun(char tt[],int pp[] )

{

    /***************Begin************/

int m=0,i,j;

int pp[26]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

for(i='a';i<='z';i++)

{

for(j=0;j<1000;j++)

{

if(tt[j]==i)

pp[m]=++m;

}

m++;

}

    /*************** End ************/

}

int main( )

{  

  FILE *wf,*in;

  char aa[1000];

  int  bb[26], k;

  printf("\nPlease enter a char string : ") ; 

  scanf("%s",aa);

  fun(aa,bb);

  for (k=0 ;k<26 ; k++) 

    printf("%d\n",bb[k]) ;

/******************************/

  in=fopen("in02.dat","r");

  wf=fopen("out02.dat","w");

  fgets(aa,80,in);

  fun (aa,bb) ;

  for (k=0 ;k<26 ; k++) 

    fprintf(wf,"%d\n",bb[k]) ;

  fclose(wf);

  fclose(in);

/*****************************/

system("pause");

return 0;

}


void fun(char tt[], int pp[])

{
    /***************Begin************/
    
    int pps[26] = {0};
    int j = 0;
    
    while (tt[j]!='\0')
    {
        if (tt[j]>='a'&&tt[j]<='z')
        {
            int n = tt[j] - 'a';
            pps[n]++;
        }
        j++;
    }
    for (int i = 0; i < 26; i++)
    {
        pp[i] = pps[i];
        printf("%d", pp[i]);
    }

    /*************** End ************/

}

void fun(char tt[], int pp[])
{
    for (int i = 0; i < 26; i++)
        pp[i] = 0;
    const char *p = tt;
    while (*p)
    {
        if (*p >= 'a' && *p <= 'z')
            pp[*p - 'a']++;
        p++;
    }
}

gfun函数中参数pp和局部变量pp重名了,改下其中一个就可以了