aspe se non usi il typedef ogni volta che vuoi dichiarare una variabile devi usare anche struct, per forza.

codice:
typedef struct colonna {
int disco;
struct colonna *next;
} column;   //In questo punto metti il nome del tipo che vuoi creare
Ora column è un tipo di dato (proprio come int float ecc, solo che non è un tipo base).

Per creare una variabile di tipo column fai

codice:
column *a;
la funzione lista dovrà avere questo prototipo

codice:
void lista(column *A);
e la chiami con
codice:
lista(A);