c - Inserting a new element at head of a Linked List and printing the elements value -


i'm trying create list in c language inserting new element @ head , after want print value of elements.

this code wrote :

#include <stdio.h> #include <stdlib.h> #include <malloc.h>  struct clients  {  int stato; //stato del giocatore : 0 libero 1 occupato struct clients *next; //puntatore all'elemento successivo della lista };  typedef struct clients player;         /* per comodita' */   // funzione che inserisce elem in testa alla lista  void inserisci(player *elemento, player *lista) {  elemento->next=lista; lista=elemento;          }  // funzione che visualizza la lista  void visualizza(player *lista) {  player *p = lista; //creo puntatore alla lista passatagli while ( p != 0) {     printf("valore %d \n",p->stato);     p=p->next; }   }  // main principale  int main(void)  { player *first = null;    /* puntatore al primo elemento della lista */ player *pippo = null; int i; printf("inizio inserimento \n"); (i=1;i<=10;i++) {     pippo=malloc(sizeof(player));     pippo->stato=i;     pippo->next=null;     inserisci(pippo,first);     pippo = null;  } printf("fine inserimento. ora stampa !  \n");  visualizza(first);  return 0;    } 

but when run code doesn't print value of elements of list :/

you assigning local variable in:

void inserisci(player *elemento, player *lista) {     elemento->next=lista;     lista=elemento; /* here, local variable affected */      } 

change to:

void inserisci(player *elemento, player **lista) {     elemento->next=*lista;     *lista=elemento; /* passed variable affected */      } 

and in main:

inserisci(pippo,&first); 

Comments

Popular posts from this blog

google api - Incomplete response from Gmail API threads.list -

Installing Android SQLite Asset Helper -

Qt Creator - Searching files with Locator including folder -