c语言不知道哪里错了,运行输入时有错误

#include<stdio.h>
struct test{
   int data;
   int bj;
}*test1; 
int test2(int n){
   if(n>3){
   for(int i=0,j=0,t;i<n/2;i++)
   {
       if(test1[i].data==test1[n/2+1].data){
        t=test1[i].data;
        test1[j].data=t;
        t=test1[i].bj;
		test1[j].bj=t;
		j++;
       }
   }
   int k=n/2;
   return test2(k);
   }
   if(n==3){
   	if(test1[0].data==test1[1].data)
   	   return test1[0].bj;
   	else
   	  return test1[2].bj;
  	 }
   if(n==2||n==1)
     return test1[0].bj;
}
int main(){
   int n;
   printf("请输入测试芯片个数:\n"); 
   scanf("%d",&n);
   printf("请输入测试芯片的数据\n");
   for(int i=0;i<n;i++){
   scanf("%d",&test1[i].data);
   test1[i].bj=i+1;
   }
   printf("好芯片的位置:\n");
   printf("%d",test2(n));
   return 0;
}

 

请问你输入了什么?出了什么错误?

最好把报错和运行截图发一下