Ključna razlika: 'Calloc' i 'Malloc' odnosi se na izvedbu dinamičke dodjele memorije u C programskom jeziku. 'Calloc' inicijalizira dodijeljenu memoriju sa nula, dok 'malloc' ne.
I 'calloc' i 'malloc' su standardne funkcije knjižnice.
Njegova sintaksa je sljedeća:
void * calloc (broj_blokova, veličina_od_broj_baza);
Ovdje je 'void' opća C funkcija, koja ne vraća nikakvu vrijednost. Broj elemenata u prvom argumentu određuje veličinu jednog elementa u drugom bajtu u drugom argumentu. Adresa se vraća nakon uspješnog particioniranja, u suprotnom se vraća NULL na bilo kojem neuspjehu funkcije.
Njegova sintaksa je sljedeća:
void * malloc (size_in_bytes);
Konkretno, vraća adresu na generički način (void *). Ako 'malloc' ne uspije dodijeliti memoriju, ona vraća -1, inače vraća adresu s koje je dodijeljena memorija. Dodijeljena memorija može biti u obliku cijelog broja, po vrsti koja upućuje nevažeću adresu kao int *; dodijeljena memorija također može biti u obliku plovka, samo po vrsti koja istu void adresu kao float *.
Usporedba između Callocka i Malloc:
Calloc | malloc | |
Osnovne funkcije | Funkcija knjižnice dodjeljuje regiju memorije, koja je dovoljno velika da drži svaki od "n elemenata" bajtova veličine. | Funkcija knjižnice dodjeljuje samo "veličinu" bajtova memorije. |
Inicijalizacija | On inicijalizira sadržaj memorije na nulu. | Ne inicijalizira sadržaj memorije na nulu. |
Broj argumenata | Ovdje postoje dva argumenta. | Ovdje postoji samo jedan argument. |
Dodijeljene vrijednosti | Dodijeljena regija se inicijalizira na nulu. | Sadržaj dodijeljene memorije se ne mijenja, tj. Memorija sadrži nepredvidive ili smeće, što stvara rizik. |
Vraća vrijednost | void pointer (void *). Nakon uspješne dodjele, vraća se pokazivač na blok memorije. | void pointer (void *). Nakon uspješne dodjele, vraća se pokazivač na blok memorije. |