| 
 File: Stare vježbe/vjezbe10/60__malloc.c 
/*     60__malloc.c     Dinamicka alokacija memorije - funkcije malloc i free.     -----     Prototip funkcije malloc:     void* malloc(size_t size);         Funkcija malloc vraca void* pointer na alocirani komad memorije         velicine size, odnosno NULL ukoliko zahtjev za alokacijom memorije         iz nekog razloga nije mogao biti ispunjen (npr. ostalo je premalo         slobodne memorije).     Prototip funkcije free:     void free(void* memblock);         Funkcija free dealocira komad memorije na kojeg pokazuje pointer         memblock i koji je prethodno bio alociran odgovarajucim pozivom         funkcije malloc. */   #include <stdio.h> #include <stdlib.h> #include <malloc.h>   int main() {     int* p_int;     float* p_float;       printf("p_int = %d,  p_float = %d\n", p_int, p_float );      /* Buduci da pointeri p_int i p_float u ovom trenutku jos nisu        inicijalizirani ne smijemo ih dereferencirati */       /* Alociramo sizeof(int) byteova memorije za pointer p_int */     p_int = (int*) malloc(sizeof(int));     /* Alociramo sizeof(float) byteova memorije za pointer p_float */     p_float = (float*) malloc(sizeof(float));       if(p_int==NULL || p_float==NULL) {         printf("Greska u alokaciji memorije!\n");          exit(1);     }       /* sada su pointeri p_int i p_float inicijalizirani, pa ih smijemo        dereferencirati */     *p_int=3;     *p_float=3.14;     /* ili npr:        scanf("%d %f", p_int, p_float); */       printf("p_int = %d,  p_float = %d\n", p_int, p_float );      printf("*p_int = %d,  *p_float = %f\n", *p_int, *p_float );        /* Na kraju obavezno moramo osloboditi alociranu memoriju pomocu        funkcije free */     free(p_int);     free(p_float);       return 0; }   
 
          
  
       |