Ciao ragazzi,
ho un problema con questo codice:
codice:
#include <stdio.h>
#include <stdlib.h>


 struct elemento {
    int value;
    struct elemento *next;
 };

 void menu();
 struct elemento *inserimento (struct elemento *list_head);
 //struct elemento *cerca (int n, struct elemento *list_head);
// struct elemento *ordina (struct elemento *list_head);
 //struct elemento *elimina (int n, struct elemento *list_head);
 void stampa(struct elemento *list_head);

 int main () {
    struct elemento *list_start=NULL;
    int comando;
    int search; 
   int del;

    do { 

       menu();
       printf("\n\ncomando:\t");
       scanf("%d",&comando);

    switch (comando) {                           
       case 1: {
          inserimento(list_start);
          break;
       }

    /*   case 2:{
          printf("Digita il valore da cercare");
          scanf("%d",&search);
          cerca(search,list_start);
          break;
       }

       case 3: {
          ordina(list_start);
          break;
       }

       case 4: {
          printf("Digitare il valore da eliminare");
          scanf("%d",&del);
          break;
       }*/

       case 5: {
          stampa(list_start);
          break;
       }

    }
 }   while (true);         

    return 0;
 }

 //creazione del menu
 void menu() {

    printf("||||||||||||||||||||||||||||||||||||");
    printf("\n1)Inserimento valore");
    printf("\n2)Ricerca valore");
    printf("\n3)Ordinamento lista");
    printf("\n4)Eliminazione");
    printf("\n5)Stampa lista\n");
    printf("||||||||||||||||||||||||||||||||||||");

    }

struct elemento *inserimento (struct elemento *list_head){
   struct elemento *list_pointer, *list_record;
   int exit=0;
   int val,newval,i=2;
   list_record=(struct elemento*)malloc(sizeof(struct elemento));

   printf("Inserisci il 1° valore");
   scanf("%d",list_record->value);
   list_head=list_record;
   list_pointer=list_head;
   do {
      list_record->next=(struct elemento*)malloc(sizeof(struct elemento));    
      list_record=list_record->next;
      printf("inserisci il %d° valore",i++);
      scanf("%d",list_record->value);
      printf("Vuoi fermarti?(premere 1 per continuare altrimenti 0)\n");
      scanf("%d",&exit);
   }while(exit==1);

   list_record->next=NULL;
   list_pointer=list_head;

   return(list_head);
}


void stampa (struct elemento *list_start) {
struct elemento *list_pointer =list_start;
    printf("\nlista -> "); 

    while(list_pointer != NULL){    
        printf("%d", list_pointer->value);        
        printf(" -> ");       
        list_pointer = list_pointer->next;     
     } 
    printf(" NULL \n"); 
}



In pratica mi fa inserire i valori ma quando stampo a video mi spunta solo "lista->NULL" senza stamparmi i numeri.... come posso risolvere? (non guardate gli altri comandi che ancora sono in fase di lavorazione).
grazie in anticipo