Ragazzi sono disperato ho un problema con una linked list ma non riesco a capire dov'è l'errore. Il programma non deve fare altro che creare una linked list con i dati riportati in elementi.
MI da 2 warning
53 [Warning] assignment from incompatible pointer type
54 [Warning] assignment from incompatible pointer type.

Riporto qui il codice magari qualcuno più esperto di me può dirmi dov'è che sbaglio:




#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#define size 11
struct elemento
{
char *name;
int numero;
};
typedef struct elemento el;
struct el
{
el inf;
el *p_next;
};
el elementi[size]={{"Anna",5},{"Mario",8},{"Giuseppe",6},{"Angela", 0},{"Valerio",-1},{"Fabrizio",7},{"Marianna",1},{"Giovanni",2},
{"Patrizia",10},{"Valentina",4},{"Sara",9}};
struct el *crea_lista();


void visualizza_vista(struct el *);
int main(int argc,char *argv[])
{
struct el *head; /*Puntatore alla testa della lista*/
puts("A");
head=crea_lista(); //Chiamata alla function per la creazione della lista
puts("B");
visualizza_vista(head); // Chiamata alla function per la stampa della lista
system("PAUSE");

}
/*Funzione per la creazione della lista con il relativo inserimento delle informazioni*/
struct el *crea_lista()
{
struct el *p,*paus;
int i,num;
char nome[20];
elementi[0].numero=num;
strcpy(elementi[0].name,nome);
p=(struct el *)malloc (sizeof(struct el));
p->inf.name=nome;
p->inf.numero=num;
paus=p;
for (i=1;i<size; i++)
{
(paus->p_next)=(struct el *)malloc (sizeof(struct el));
paus=paus->p_next;
elementi[0].numero=num;
strcpy(elementi[0].name,nome);
p->inf.name=nome;
p->inf.numero=num;
}
paus->p_next=NULL;
}

/*Funzione per la visualizzazione della lista */
void visualizza_vista(struct el *p)
{
printf("punt_lista --->");
while (p!=NULL)
{
// printf ("%s %d",info.name,info.numero);
printf("--->");
p->p_next;
}
printf ("NULL\n\n\n");

}