Scusate, ma è da poco che sto imparando il linguaggio C. Non riesco proprio a capire questo problema, dunque ho una lista, con due campi informazione ed un puntatore,
nel main assegno alla lista determinati valori, attraverso la funzione NewNotifiy. Questa funzione, se la lista è vuota la riempie con i dati passategli per argomento,altrimenti scorre la lista fino alla fine e aggiunge poi i nuovi dati.
Il problema è quanto tento di stampare i valori della lista. Il programma mi si blocca e mi dà errore.
codice:
#include <stdio.h>
#include <stdlib.h>

struct _NOTIFIES{long event;long notify;struct _NOTIFIES* pointer;};
typedef struct _NOTIFIES* NOTIFIES;
NOTIFIES NewNotify(NOTIFIES notifies,long event, long notify);


int main()
{
    static NOTIFIES n;
    n=NewNotify(n,7,8);
    n=NewNotify(n,9,80);
    printf("primi valori inseriti: %d  %d \n",n->event,n->notify);
    n=n->pointer;
    printf("altri valori inseriti: %d  %d \n",n->event,n->notify);
    return 0;
}

NOTIFIES NewNotify(NOTIFIES notifies,long event, long notify)
{
    NOTIFIES cursor;
    if(notifies==NULL)
    {
        notifies=(NOTIFIES)malloc(sizeof(struct _NOTIFIES));
        if(notifies!=NULL)
        {
            notifies->event=event;
            notifies->notify=notify;
            notifies->pointer=NULL;
        }
    }
    else
    {
        cursor=notifies;
        while(cursor!=NULL){cursor=cursor->pointer;}
        cursor=(NOTIFIES)malloc(sizeof(struct _NOTIFIES));

        if(cursor!=NULL)
        {
            cursor->event=event;
            cursor->notify=notify;
            cursor->pointer=NULL;
            notifies=notifies->pointer;
        }
    }
    return notifies;
}