una pregunta la variable l de la estructura eseta bien inicializada??
 Lo digo porque si ves este codigo que te paso:    
Código C:
Ver original- #define N 90 
-   
- typedef struct{ 
- char elem[N]; 
- int l; 
- }Lista; 
-   
- #include <stdio.h> 
- void insertar(Lista *list,char e,int pos){ 
- int i; 
-   
-  for(i=list->l+1;i>=pos+1;i--){ 
-     list->elem[i]=list->elem[i-1]; 
-  } 
-     list->elem[pos]=e; 
-     list->l++; 
-   
- } 
-   
- int main() 
- { 
- Lista a; 
- a.l = 0; 
- insertar(&a,10,0); 
- insertar(&a,11,1); 
- insertar(&a,12,1); 
-   
- printf("%d %d %d\n ",-  a. elem[0],-  a. elem[1],-  a. elem[2]);
 
- return 0; 
- } 
Cree un main propio, inicialice la variable a cero y me inserto los tres elementos perfectamente.