calloc

Toiminnon kuvaus

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

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

  • Huomautus: Num: Objektit, Koko: Objektin varatun muistin tavun numero , Verrattuna malloc-funktioon Calloc-toiminto käynnistää muistin automaattisesti nollaan;

Ero Mallociin

Calloc dynaamisen jakelun jälkeen Automaattisesti alusta muistitila on nolla, kun taas Malloc ei alusta, osoitetussa tilassa olevat tiedot ovat satunnaisia ​​tietoja. Mallocin kuvaus on seuraava:

  • prototyyppi: Extern void * malloc (signed int size);

  • toiminto: Dynaaminen muistin varaus

  • Huomautus: KOKO on vain sovellukseen tallennettu tietotyyppi muistia varten, joten on suositeltavaa antaa se seuraaville tavoille ohjelmoitaessa muistilohkoon tallennettua tietotyyppiä. "Pituus * SIZEOF (tietotyyppi)";

Käyttö

void * Calloc (koko_t nmenb, koko_t koko);

Calloc ) Funktio on allokoitu NMEMB-elementissä, jossa jokainen elementti on SIZE-tavu. Tämä funktio palauttaa osoittimen, jos vaadittu välilyönti ei kelpaa. Muistin varaamisen jälkeen calloc () -funktio alustetaan asettamalla kaikki bitit arvoon 0. Kutsu esimerkiksi calloc () -funktio varataksesi tallennustilaa N kokonaisluvulle ja varmista, että kaikki kokonaisluvut alustetaan nollaan:

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

Koska calloc () -funktio tyhjentää varatun muistin, malloc () -toiminto ei ole, joten voit kutsua "1" ensimmäisenä argumenttina, joka antaa tilaa mille tahansa tietokohdalle. Esimerkiksi:

rakennepiste {int x, y;} * pi;

pi = calloc (1, koko (rakennepiste));

Tämän lauseen jälkeen Pi osoittaa rakennetta, ja tämän rakenteen jäsenet x ja y asetetaan arvoon 0.

Käytä tavallisesti ilmaista (aloitettua osoiteosoitinta) vapauttaaksesi muistia, muuten muistisovellukset vaikuttavat tietokoneen suorituskykyyn, jolloin tietokone käynnistetään uudelleen. Jos et saa sitä käytön jälkeen, voit myös käyttää tätä luonnetta käyttääksesi lohkomuistia.

Otsikkotiedosto: stdlib.h tai malloc.h

liittyvät toiminnot: Malloc, Realloc, Free_Alloca

Sovellusesimerkki

Ohjelma esimerkki 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;} 

Näyte 2

Tästä esimerkistä voidaan nähdä, että elementti alustetaan, kun tallennustila on valmis.

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

​​lähtö kymmenen 0

Related Articles
TOP