Problema con malloc en listas enlazadas

bumpy
27 de Marzo del 2004
Buenas tengo la funcion de añadir elemento a la lista al final de la lista ocn la cabecera :

void anadir_elemento(int x,int y,Lista *primero,Lista *ultimo)
{

pNodo nuevo;
/* reservamos memoria para el nuevo elemento */

if ( (nuevo = (pNodo ) malloc ( sizeof (Nodo) ) )==NULL)
printf( "No hay memoria disponible!n");
else printf("ANADR creadon");

donde pNodo y Lista es *Nodo,

La situacion es k se me queeda pillado justo en la intruccion de reserva de memoria cuando en un bucle ejecuto la funcion con la cabecera :

void anade_vecinos_improved (char ***mapa2,int ***matint2,Coor ***Origenes2,int tam_fila,int tam_col,int x,int y,int
potencial,Lista *primero,Lista *ultimo,double Tskel)

donde pretendo que añada puntos a la lista, llamando dentro de la funcion a la funcion de añadir elementros mediante

anadir_elemento((x+1),y,&(*primero),&(*ultimo));

Si alguien supiera de k puede ser se lo agradeceria