Unaprijed hvala
#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! ! !