为什么报错是分段错误呢大家
#include<stdio.h>
int zuichanggonggongzichuan(int n,char(*)[10000]);
int main(void)
{
int n;
int i,k,count;
int T;
char ch[n][10000];
scanf("%d",&T);
scanf("%d",&n);
for(i=0;i<T;i++)
{
for(k=0;k<n;k++)
{
scanf("%s",ch[k][10000]);
}
count=zuichanggonggongzichuan(n,ch[n][10000]);
printf("%d",count);
}
return 0;
}
int zuichanggonggongzichuan(int n,char ch[n][10000])
{
int count=0;
int jishu[10000]={0};
int i,k;
int m;
//将每个字母字符串转换成数字字符串,然后一其值为索引存入一个辅助数组
for(i=0;i<n;i++)
{
for(k=0;k!='\0';k++)
{
ch[i][k]=ch[i][k]-'a'+10;
}
}
//从第一个字符串开始以一其值为索引存入一个辅助数组
for(i=0;ch[0][i]!='0';i++)
{
m=ch[0][i];
jishu[m]++;
//防止重复字符
if(jishu[m]>1)
jishu[m]=1;
}
//开始利用辅助数组开始,从第二个字符串开始,要是第二个字符串中没有辅助数组中的值,就将这个索引对应的值化为0
for(i=1;i<n;i++)
{//遍历每个字符串
for(k=0;ch[i][k]!='0';k++)
{
m=ch[i][k];
jishu[m]++;
}
for(m=0;m<10000;m++)
{
if(jishu[m]==1)
jishu[m]=0;
if(jishu[m]>1)
jishu[m]=1;
}
}
for(m=0;m<10000;m++)
{
if(jishu[m]==1)
count++;
}
return count;
}