菜鸟有关问题.帮忙啊多谢了`哪位高手帮忙.给满分。

初学者问题..帮忙啊!~!...谢谢了``谁帮忙..给满分。.
#include   <stdio.h>
#include   <stdlib.h>
#define   list_init_size   100
typedef   struct
{
int   *   elem   ;
int   length;
int   listsize   ;
}     sqlist   ;

int   listinit(sqlist   *a,sqlist   *b)                     //建立表..a和b...
{
a-> elem=(int   *)malloc(list_init_size*sizeof(int   ))   ;
if(a-> elem==NULL)
return   0   ;
a-> length=NULL;
a-> listsize=list_init_size;


b-> elem=(int   *)malloc(list_init_size*sizeof(int   ));
if(b-> elem==NULL)
return   0   ;
b-> length=NULL;
b-> listsize=list_init_size;

return   1   ;

}

int   mergelist(sqlist   *a,sqlist   *b,sqlist   *c)
{
c-> elem=(int   *)malloc(list_init_size*sizeof(int   ))   ;     ///建立表C
if(c-> elem==NULL)
return   0   ;
c-> length=a-> length+b-> length;
c-> listsize=a-> listsize+b-> listsize;

int   *la,*lb;
int   i;



la=a-> elem+a-> length-1;                                           //合并
lb=b-> elem+b-> length-1;
while(a-> elem <=la     &&     b-> elem <=lb)
if(a-> elem <=b-> elem)
{
*(c-> elem)++=*(a-> elem)++;
}
else
{ *(c-> elem)++=*(b-> elem)++;



}
while(a-> elem   <=   la)
*(c-> elem)++=*(a-> elem)++;

while(b-> elem <=lb)
*(c-> elem)++=*(b-> elem)++;
return   1;


}

main()
{
sqlist   l,m,n;
int   i,j,k;
listinit(&l,&m);
for(i=0;i <10;i++)
{
scanf( "%d ",&l.elem[i]);
l.length++;

}
for(j=0;j <10;j++)
{
scanf( "%d ",&m.elem[j]);
m.length++;

}

mergelist(&l,&m,&n);
for(k=0;k <=n.length-1;k++)
printf( "%d ",n.elem[k]);
return   1;


}




------解决方案--------------------
拿我得号问题得时候那么大方。自己问就这么小气,,BS。。。