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
Post a Comment