Dodawanie elementu na początek listy C#

Stworzyłem listę elementów i próbuje dodać element na jej początek lecz wyświetla mi taki błąd: “invalid conversion from ‘void*’ to’elListy* {aka el*}’ [-fpermissive]”. Ktoś wie co jest nie tak? Poniżej kod programu. 

 

#include<stdio.h>
#include<stdlib.h>
 
struct el {
        int klucz ;
         struct el *nast;
          };
 
 typedef struct el elListy ;
 typedef elListy * lista ;
 
 
 
void DNPL(lista *l, int i ) // l wsk. na listę!
 {
  lista p = ( lista )malloc(sizeof( elListy ));
  p->klucz = i;
  p->nast = *l;
  *l = p;
 }
 
 int main() 
 {
 
    elListy *l=0, *p=0;
     int n=5;
     while(n--){
     p = malloc(sizeof( elListy ));
     p->klucz = n+1;
     p->nast = l;
     l = p;
                 }    
     lista _l = 0;
     DNPL(&_l, 3);
     DNPL(&_l, 2);
     DNPL(&_l, 1);
     DNPL(&_l->nast, 0);
     WyswietlListe(_l);
     return 0;
}

Temat do zamknięcia. Już sobie poradziłem z problemem.