PDA

View Full Version : [C] Non mi crea la lista...xkè?


leadergl
31-01-2006, 08:06
raga ho una funzione che crea un albero, in quest'albero c'è anche una lista da riempire.

l'albero viene creato bene e quando chiamo la funzione per creare la lista nessun problema ma poi evidentemente qualcosa nn funziona, ma nn so xkè?


void GeneraAlbero(FILE *stream, AlberoTassonomia **nodo, int fratelli)
{
char prop[256];

// ....
// ....

// Inserisco la lista delle proprietà
RiempiListaProprieta((*nodo)->proprieta, prop);


Ecco il codice che genera la lista delle proprietà:

// Riempie la lista delle proprietà di ogni nodo
void RiempiListaProprieta(ListaProprieta *list, char *proprieta)
{
int loop;
char *array[256];

if (list==NULL) NuovaLista(list);

array[0]=strtok(proprieta,"|");
if(array[0]==NULL)
{
exit(0);
}

for(loop=1;loop<256;loop++)
{
// isolo la proprieta e la memorizzo in ARRAY[LOOP]
array[loop]=strtok(NULL,"|");
if(array[loop]==NULL)
break;
// inserisco il valore della varie proprietà
PushLista(list, array[loop]);
}
printf("\n");
}


Ed ecco la mia funzione NuovaLista e PushLista:

// Crea una nuova lista
void NuovaLista(ListaProprieta *list)
{
if (list!=NULL) list=NULL;
list=(ListaProprieta *)malloc(sizeof(ListaProprieta));
}


// Inserisce l'elemento X in cima alla lista
void PushLista(ListaProprieta *list, char *x)
{
int i;
ListaProprieta *nuovo=(ListaProprieta *)malloc(sizeof(ListaProprieta));

nuovo->elem=x;
nuovo->next=list;
}


cosa c'è che non va?

leadergl
31-01-2006, 12:01
Ho risolto ;)