12.07.2015 Views

Programski jezik C - Pmf

Programski jezik C - Pmf

Programski jezik C - Pmf

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

204 POGLAVLJE 12. STRUKTUREPokazivač na prvi element liste start definiran je kao globalna varijablai inicijaliziran nul-pokazivačem koji označava kraj liste. U ovom trenutkulista je posve definirana i ne sadrži niti jedan element.Element se u vezanu listu može dodati i izbrisati na bilo kojem mjestu.Napišimo funkciju unos koja dodaje novi element na kraj liste./* dodavanje novog elementa na kraj liste */void unos(void) {struct ime *zadnji, *novi;char line[128];}printf("Dodavanje novog elementa na kraj liste.\n");novi = (struct ime *) malloc(sizeof(struct ime));if(novi == NULL) {printf("Nema dovoljno memorije ... ");exit(-1);}novi->next=KRAJ;printf("Unesite ime > ");scanf(" %[^\n]",line);novi->p_ime=(char *) malloc(strlen(line)+1);if(novi->p_ime == NULL) {printf("Nema dovoljno memorije ...");exit(-1);}strcpy(novi->p_ime,line);if(start==KRAJ) /* prazna lista */start=novi;else { /* pronadji kraj liste */for(zadnji=start; zadnji->next != KRAJ; zadnji=zadnji->next); // ne radi nista/* neka zadnji pokazuje na novi element */zadnji->next=novi;}Kôd prvo alocira memoriju za novi element. Budući da će on biti zadnji ulisti, njegov next član se postavlja na KRAJ. Zatim se alocira memorija zanovo ime koje se učitava u spremnik line pomoću scanf funkcije i kopirana rezerviranu memoriju sa strcpy. Kôd ne uzima u obzir eventualni pretekspremnika line.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!