[ zokio @ 07.11.2005. 22:26 ] @
Naime poceo sam raditi zadatke sa vezanim listama, a posto nisam ima ideje kako i sta uzeo sam knjigu i poceo raditi vec uradjeni, no medjutim neli dijelovi koda mi nisu jasni(oznacit cu ih) a uostalom program puca ne znam zasto. Ako mozete pogledajet i pomozite jer bez ovog nemogu proci ispit.... Unaprijed hvala Code: #include <stdio.h> #include <string.h> #include <stdlib.h> #define KRAJ (struct ime *) 0 struct ime{ char *p_ime; struct ime *next; }; struct ime *start=KRAJ; void unos(void); main() { unos(); } void unos(void) { struct ime *zadnji, *novi; char line[128]; /*Dodavanje novog elementa*/ novi=(struct ime *)malloc(strlen(line)+1); /*-nije mi jasno ovdje za sto se tocno alocira memorija- za pokazivac novi.. u knjizi pise "kod prvo alocira memoriju za element novi" - nejasno mi je zasto to cini tu a ne poslije scanf funkcije*/ if (novi=NULL){ printf("Nema dovoljno memorije . . ."); exit(-1); } novi->next=KRAJ; printf("Unesite ime > "); scanf("%s", line); novi->p_ime=(char *) malloc(strlen(line)+1); if (novi->p_ime==NULL){ printf("Nema dovoljno memorije . . ."); } 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*/ /*sada neka zadnji pokazuje na novi element*/ zadnji->next=novi; } } E da i prilikom kompajliranja javlja se warning da "novi nije inicijaliziran" eto ako netko ima zelje i volje stvarno sam izgubljen a nemam koga pitat, unaprijed HVALA! ! ! |