ciao , devo dirti che il codice andrebbe messo tra tag code , e che qualche moderatore te lo farà notare
per il problema , sembra che tutto sia corretto , e che tutte le funzioni facciano il loro lavoro ,
solo ,all'uscita della funzione dividi (),i puntatori lPositivi lNegativi sono nulli , ma non sembra esserci errori nella funzione io ho provato con qualche printf e tutto funziona
COME ho testato la funzione dividi() che sembra funzionare
codice:
void dividi(TLISTA *lista, TLISTA *lPositivi, TLISTA *lNegativi){
TLISTA *temp;
temp=lista;
while(temp!=NULL){
if(temp->val>=0){
lPositivi=addLista(lPositivi, temp->val);
if(lPositivi==NULL)puts("non restituito puntatore");//lPositivi non è nullo
printf("valore %d \n" ,temp->val);
}
else{
lNegativi=addLista(lNegativi, temp->val);
printf("valore negativi %d \n" ,temp->val);
}
temp=temp->next;
}
while(lPositivi!=NULL) // i dati vengono stampati correttamente
{
printf(" positivi funzione %d\n",lPositivi->val);
lPositivi=lPositivi->next;
}
while(lNegativi!=NULL)
{
printf(" negativi funzione %d\n",lNegativi->val);
lNegativi= lNegativi->next;
}
}
Quindi non so proprio perche non funziona ????