ciao a tutti, ho il seguente esercizio:
crea una lista casuale di soli caratteri: A G V T, con un metodo DNAGen che dato un numero k restituisce una sequenza casuale.
il codice che ho scritto funziona ma nel momento in cui vado a compilare ed eseguire mi fa un errore. Ma non riesco a capire dov'è che sbaglio

codice:
#include <stdio.h>
#include <stdlib.h>

struct elemento{
       char info;
       struct elemento *next;
       };
       
/*creazione casuale di A G V T*/
char random_char() {
char n = rand() % 4;
switch(n) {
case 0 : return 'A';
case 1 : return 'G';
case 2 : return 'C';
case 3 : return 'T';
default: return 'T';
}
return n;
}

/*creazione di una lista di lunghezza k con elementi casuali*/
struct elemento *DNAGen(int k){
     struct elemento *p;
     char h;
     int i;
     for(i=0; i<k; i++){
                 p=(struct elemento*)malloc(sizeof(struct elemento));
                 h=random_char();
                 p->info=h;
                 p=p->next; 
                 }
                 p->next=NULL;
                 return p;
                 }
                 
                 
void stampa(struct elemento *p){
     printf("Lista : ");
     while(p!=NULL){
                    printf("%c",p->info);
                    printf("-->");
                    p=p->next;
}
                    printf("\nFINE");
}

main(){
       struct elemento *f;
       f=DNAGen(5);
       stampa(f);
       system("PAUSE");
       }
mi potete dare una mano? grazie mille