Ključna razlika: „Calloc“ in „Malloc“ se nanašata na zmogljivost dinamičnega dodeljevanja pomnilnika v programskem jeziku C. "Calloc" inicializira dodeljeni pomnilnik z nič, medtem ko "malloc" ne.
Oba 'calloc' in 'malloc' sta standardni knjižnični funkciji.
Njegova skladnja je naslednja:
void * calloc (število_blok, velikost_oblike_blok_in_bajtov);
Tukaj je 'void' splošna funkcija C, ki ne vrne nobene vrednosti. Število elementov v prvem argumentu določa velikost enega elementa v drugem argumentu. Naslov se po uspešnem particioniranju vrne, sicer se vrne NULL pri vsaki napaki funkcije.
Njegova skladnja je naslednja:
void * malloc (velikost_in_bytes);
Natančneje, vrne naslov generično (void *). Če 'malloc' ne dodeli pomnilnika, vrne -1, sicer vrne naslov, iz katerega je pomnilnik dodeljen. Dodeljeni pomnilnik je lahko v obliki celega števila, in sicer glede na vrsto neveljavnega naslova kot int *; dodeljeni pomnilnik je lahko tudi v obliki float, samo po vrsti, ki v istem pomenu odda enake naslove kot float *.
Primerjava med Calloc in Malloc:
Calloc | Malloc | |
Osnovne funkcije | Funkcija knjižnice dodeli območje pomnilnika, ki je dovolj velik, da lahko vsebuje vsak "n elementov" bajtov velikosti. | Funkcija knjižnice dodeli le »velikost« bajtov pomnilnika. |
Inicializacija | Inicializira vsebino pomnilnika v ničle. | Ne inicializira vsebine pomnilnika v ničle. |
Število argumentov | Tukaj sta dva argumenta. | Tukaj je samo en argument. |
Dodeljene vrednosti | Dodeljena regija je inicializirana na nič. | Vsebina dodeljenega pomnilnika se ne spremeni, kar pomeni, da pomnilnik vsebuje nepredvidljive ali smetninske vrednosti, kar ustvarja tveganje. |
Vrne vrednost | void kazalec (void *). Po uspešni dodelitvi se vrne kazalec na blok pomnilnika. | void kazalec (void *). Po uspešni dodelitvi se vrne kazalec na blok pomnilnika. |