Kľúčový rozdiel: "Calloc" a "Malloc" sa vzťahuje na výkon prideľovania dynamickej pamäte v programovacom jazyku C. A 'calloc' inicializuje alokovanú pamäť s nulou, zatiaľ čo 'malloc' nie je.
Obaja "calloc" a "malloc" sú štandardné funkcie knižnice.
Jeho syntax je nasledujúci:
void * calloc (počet_blockov, size_of_each_block_in_bytes);
Tu je "void" všeobecná funkcia C, ktorá nevráti žiadnu hodnotu. Počet prvkov v prvom argumente určuje veľkosť v bajtoch jedného prvku k druhému argumentu. Adresa je vrátená po úspešnom rozdelení, inak sa vráti NULL pri akejkoľvek poruche funkcie.
Jeho syntax je nasledujúci:
void * malloc (size_in_bytes);
Konkrétne vracia adresu všeobecným spôsobom (void *). Ak 'malloc' nevytvorí pamäť, vráti hodnotu -1, inak vráti adresu, z ktorej je pamäť pridelená. Pridelená pamäť môže byť vo forme celého čísla, podľa typu odovzdania prázdnej adresy ako int *; pridelená pamäť môže byť tiež v tvare plaváka, len podľa typu odovzdávania rovnakej prázdnej adresy ako float *.
Porovnanie medzi Calloc a Malloc:
calloc | malloc | |
Základné funkcie | Funkcia knižnice alokuje oblasť pamäte, ktorá je dostatočne veľká na to, aby držala "n prvky" bajtov "veľkosti" každej. | Funkcia knižnice priraďuje len bajty "veľkosti" pamäte. |
inicializácia | Inicializuje obsah pamäte na nuly. | Neinicializuje obsah pamäte na nuly. |
Počet argumentov | Tu sú dva argumenty. | Tu je len jeden argument. |
Pridelené hodnoty | Pridelený región je inicializovaný na nulu. | Obsah alokovanej pamäte sa nezmení, to znamená, že pamäť obsahuje nepredvídateľné alebo odpadové hodnoty, čo vytvára riziko. |
Vracia hodnotu | prázdny ukazovateľ (void *). Po úspešnom priradení sa vráti ukazovateľ na blok pamäte. | prázdny ukazovateľ (void *). Po úspešnom priradení sa vráti ukazovateľ na blok pamäte. |