[ Brolly @ 17.09.2006. 11:48 ] @
Ne znam tacno kako funkcionise funkcija i sta zapravo radi, ali sta znaci ovo:

Tucenik *pokazivac = NULL;

if(pokazivac = (Tucenik *) malloc(sizeof(Tucenik)) == NULL)
{
printf("Nije dobro alocirana memorija!! "),
return;
}
free(pokazivac);

1. Sta znaci (Tucenik *)?! Nema nikakve funkcije s leve strane, a stoji samo po sebi u zagradi, i jos uz to zvezdica je s desne strane a ne s leve?

2. Za cega sluzi malloc? Ovakvo koriscenje zagrada sam primetio samo kada je ta funkcija u upotrebi, a njeno zaglavlje je:

void *malloc(size_t size);

???
[ NrmMyth @ 17.09.2006. 14:15 ] @
Cast operator.
pokazivac na void (void*) se pretvara u pokazivac na Tucenik (Tucenik*).
[ Au197/79 @ 17.09.2006. 14:23 ] @
1. Tucenik je tip podatka (obično je neka struktura (slog, zapis))
2. malloc (od memory allocation) pravi memorijski prostor na heap-u, odnosno dinamički alocira memoriju
funkciji se šalje veličina potrebnog memo prostora, a ona vraća pokazivač na bilo šta, što se piše sa: void *. Sa tim pokazivačem ne možemo ništa pametno raditi, tj. ne možemo pristupiti vrednosti na koju pokazuje jer ne znamo na šta pokazuje (pokazuje na bilo šta). Zato se on konvertuje u pokazivač na odgovarajući tip. U ovom slučaju tip je Tucenik pa se void * konvertuje u Tucenik *, a to se radi tako što se ispred vrednosti koja se konvertuje stavi "(" novi_tip ")" u ovom slučaju (Tucanik *).