数据结构的有关问题,困扰了小弟我很久了,有哪位大仙可以帮着给搞定上呢。必重谢

数据结构的问题,困扰了我很久了,有哪位大仙可以帮着给搞定下呢。必重谢
总是会报错:
“ missing ']' before ';'”,“syntax error : ']'”你们可以编译编译试试劳烦大家了。

#include<malloc.h>
#define maxnum 100;
typedef struct bian{
int zhixiang;//与顶点数组中的顶点公用一条边的,那个顶点的位置。
struct bian *xiagebian;
}bian;
typedef struct dingdian{
char data;
bian *firstarc;//指向第一条依附该顶点的边的指针。
}dingdian,Dingdian[maxnum];
typedef struct {
Dingdian ding;
int dingdianshu,bianshu; 
}linjiebiao;
int Locatev(linjiebiao L,char v){
int i;
for(i=0;i<L.dingdianshu;i++){
if(L.ding[i].data==v)//无.date时会报错“'==' : illegal for struct”
return i;
return -1;
}
}
void creat(linjiebiao L){
int i,j,k;
bian *p1,*p2;
scanf("%d,%d",&L.dingdianshu,&L.bianshu);
printf("请输入所有顶点:");
for(i=0;i<L.dingdianshu;i++){
scanf("%c",&L.ding[i]);
L.ding[i].firstarc=NULL;
}
for(k=0;k<L.bianshu;k++){
char v1,v2;//类型要与参数类型相同否则报错“incompatible types”,“different types for formal and actual parameter 2”
scanf("%c,%c",&v1,&v2);
getchar();
i=Locatev(L,v1);
j=Locatev(L,v2); 
p1=(struct bian *)malloc(sizeof(struct bian));//用malloc开头要加头文件。
p1->zhixiang=j;
p1->xiagebian=L.ding[i].firstarc;//前边不定义p1会报错:“'p1' : undeclared identifier”
L.ding[i].firstarc=p1;
p2=(struct bian*)malloc(sizeof(struct bian));
p2->zhixiang=i;
p2->xiagebian=L.ding[j].firstarc;
L.ding[j].firstarc=p2;
}
}
void main(){
linjiebiao L;
creat(L);
printf("无向图构建成功。");
}

------解决方案--------------------
typedef struct dingdian{
char data;
bian *firstarc;//指向第一条依附该顶点的边的指针。
}dingdian,Dingdian[maxnum];

Dingdian[maxnum];这个有问题吧,typedef不可以这么用吧
typedef struct dingdian{
char data;
bian *firstarc;//指向第一条依附该顶点的边的指针。
}dingdian;
dingdian Dingdian[maxnum];