Dove sbaglio????
codice:
 
#include <stdio.h>
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include <malloc.h>

typedef int type;

struct _list
{
    type data;
    struct _list * next; 
};

typedef struct _list * lista;

void inizializza(lista ptrls, type n);
void aggiungi(lista ptrls, type n);
void cancell(lista ptrls);

void inizializza(lista ptrls, type n)
{
    assert(ptrls != NULL);
    ptrls->data = n;
    ptrls->next = NULL;
}

void aggiungi(lista ptrls, type n)
{
    assert(ptrls != NULL);
    lista aux = malloc(sizeof(struct _list));
    // new list
    aux->data = n;
    aux->next = NULL;
    // --------
    ptrls->next = aux; 
}

void cancell(lista ptrls)
{
    lista aux;
    while (ptrls != NULL) 
    {
        aux = ptrls;
        ptrls = ptrls->next;
        free(aux);
    }
}

//main.cpp
#include "list.h"

int main( )
{
    lista l;
    inizializza(l, 9);
    aggiungi(l, 7);
    aggiungi(l, 5);
    aggiungi(l, 8);
    while(l->next != NULL)
    {
        printf("%d \n", l->data);
        l = l->next;
    }
    // cancell(l);
    system( "PAUSE" );
    return 0;
}