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.

11.9. POKAZIVAČ NA FUNKCIJU 191Primijetimo da svi bitovi postavljeni na nulu ne reprezentiraju nužno, na svakoj hardwareskojplatformi, nulu u sustavu s pokretnim zarezom i nul-pokazivač.Funkcija realloc uzima kao prvi argument pokazivač na memoriju alociranus malloc ili calloc funkcijom i mijenja njenu veličinu, čuvajući sadržajmemorije. Ako je potrebno, sadržaj će biti kopiran na novu lokaciju. Novaveličina memorijskog bloka (u bajtovima) dana je u drugom argumentu.Funkcija vraća pokazivač na alocirani blok, ili NULL ako realokacija nije uspjela.U slučaju neuspjeha realokacije stari memorijski blok ostaje nepromijenjen.Ukoliko realloc vrati pokazivač različit od prvog argumenta, ondaje stari memorijski blok dealociran, a stari sadržaj je premješten na novulokaciju.Ako je nova dimenzija memorijskog bloka veća od stare, onda se dodajenova memorija koja, kao i kod malloca, nije inicijalizirana. Ako je novadimenzija bloka manja od stare, onda se samo dealocira dio memorije.Memoriju alociranu pomoću funkcija malloc i calloc potrebno je delociratipomoću funkcije free. Ona uzima pokazivač na alocirani blok memorijei oslobada memoriju.free(p);Memorijski prostor treba delocirati čim više nije potreban.11.9 Pokazivač na funkcijuPokazivač na funkciju deklarira se kaotip_pod (*ime)(tip_1 arg_1,tip_2 arg_2, ...,tip_n arg_n);ime je tada pokazivač na funkciju koja uzima n argumenata tipa tip 1 dotip n i vraća vrijednost tipa tip pod. Zagrade su obavezne. U primjeruint (*pf)(char c, double a);pf je pokazivač na funkciju koja uzima dva argumenta, prvi tipa char, a drugitipa double te vraća int. Kod deklaracija (koje nisu definicije) imena varijablise mogu ispustiti. Tako ako funkcija g uzima kao argument pokazivačna funkciju gornjeg tipa i ne vraća ništa, onda bismo deklariralivoid g(int (*)(char, double));Ako je pf pokazivač na funkciju onda je (*pf) može koristiti kao ime funkcije.Uzmimo kao primjer funkciju koja računa približno integral zadane funkcijepo trapeznoj formuli.

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

Saved successfully!

Ooh no, something went wrong!