calloc

Popis funkce

  • prototype: void * Calloc (unsigned int num, unsigned int size; calloc

  • Function: Assign NUM lengths in the dynamic storage area of ​​the memory: "

  • Poznámka: Num: Objects, Size: Object obsazené číslo bajtu paměti , V porovnání s funkcí malloc funkce Calloc automaticky spustí paměť na 0;

Rozdíl oproti Mallocu

Calloc po dynamické distribuci Automaticky inicializovat paměťový prostor je nulový, zatímco Malloc se neinicializuje, data v přiděleném prostoru jsou náhodná data. Popis Malloc je následující:

  • prototyp: Extern void * malloc (nepodepsaná velikost int);

  • funkce: Dynamická alokace paměti

  • Poznámka: VELIKOST je pouze datový typ uložený v aplikaci pro paměť, proto se doporučuje při programování datového typu uloženého v paměťovém bloku ji zadat následujícím způsobem. "Délka * SIZEOF (Typ dat) ";

Používání

void * Calloc (size_t nmenb, size_t size);

Calloc ) Funkce je alokována v prvku NMEMB, kde každý prvek je byte SIZE. Tato funkce vrací ukazatel, pokud je požadovaná mezera neplatná. Po přidělení paměti je funkce calloc () inicializována nastavením všech bitů na 0. Zavolejte například funkci calloc () pro přidělení úložného prostoru pro N celých čísel a ujistěte se, že všechna celá čísla jsou inicializována na 0:

pi = Calloc (n, sizeof (int));

Protože funkce calloc () vymaže přidělenou paměť, funkce malloc () nikoli, takže můžete volat "1" jako první argument, který přiřazuje prostor pro jakýkoli typ datové položky. Například:

bod struktury {int x, y;} * pi;

pi = calloc (1, sizeof (bod struktury));

Po tomto příkazu bude Pi ukazovat na strukturu a členy x a y této struktury jsou nastaveny na 0.

K uvolnění paměti obvykle používejte volný (spouštěný ukazatel adresy), jinak paměťové aplikace ovlivní výkon počítače, takže se počítač restartuje. Pokud ji po použití nezískáte, můžete tuto povahu použít také pro přístup k paměti bloku.

Soubor záhlaví: stdlib.h nebo malloc.h

související funkce: Malloc, Realloc, Free_Alloca

Příklad aplikace

Příklad programu 1

 #define_crt_secure_no_warnings # include main () {char * str = null; / * Assign memory space * / Str = (char *) Calloc (10, sizeof (char)) ; / * Write Hello * / STRCPY (STR, "Hello"); / * Display Variable Content * / Printf ("String IS% S \ N", STR); / * Release Space * / Free (STR); RETURN 0;} 

Ukázka 2

Z tohoto příkladu je vidět, že prvek je inicializován po dokončení úložného prostoru.

 # include # includeint main () {INT i; int * Pn = (int *) Calloc (10, sizeof (int)); for (i = 0; i 

​​výstup deset 0

Související články
HORNÍ