Klíčový rozdíl: "Calloc" a "Malloc" se vztahují k výkonu alokace dynamické paměti v programovacím jazyce C. A 'calloc' inicializuje přiřazenou paměť nulou, zatímco 'malloc' nečiní.
Oba 'calloc' a 'malloc' jsou standardní knihovní funkce.
Jeho syntaxe je následující:
void * calloc (počet_blocků, size_of_each_block_in_bytes);
Zde je "void" obecná funkce C, která nevrací žádnou hodnotu. Počet prvků v prvním argumentu určuje velikost v bajtech jednoho prvku k druhému argumentu. Adresa je vrácena po úspěšném rozdělení, jinak je vrácena hodnota NULL při selhání funkce.
Jeho syntaxe je následující:
void * malloc (size_in_bytes);
Konkrétně vrátí adresu obecným způsobem (void *). Pokud "malloc" nevydala paměť, vrátí hodnotu -1, jinak vrací adresu, ze které je paměť přidělena. Přidělenou paměť může být ve formě celé číslo, podle typu odhazování prázdné adresy jako int *; přidělená paměť může být také ve formě plováku, a to pouze podle typu, který obsahuje stejnou prázdnou adresu jako float *.
Srovnání mezi Calloc a Malloc:
Calloc | Malloc | |
Základní funkce | Funkce knihovny přiděluje oblast paměti, která je dostatečně velká pro držení "n prvků" bajtů "velikosti" každého. | Funkce knihovny přiděluje pouze "velikost" bajtů paměti. |
Inicializace | Inicializuje obsah paměti na nuly. | Nelze inicializovat obsah paměti na nuly. |
Počet argumentů | Zde jsou dva argumenty. | Zde je pouze jeden argument. |
Přidělené hodnoty | Přiřazená oblast je inicializována na nulu. | Obsah přidělené paměti se nezmění, to znamená, že paměť obsahuje nepředvídatelné nebo popelné hodnoty, což představuje riziko. |
Vrací hodnotu | prázdný ukazatel (void *). Po úspěšném přidělení se vrátí ukazatel na blok paměti. | prázdný ukazatel (void *). Po úspěšném přidělení se vrátí ukazatel na blok paměti. |