Funkcija calloc () C ++ skiria atminties bloką objektų masyvui ir visus jo bitus inicializuoja iki nulio.
Funkcija calloc () grąžina žymeklį į pirmąjį paskirtos atminties bloko baitą, jei paskirstymas pavyksta.
Jei dydis yra nulis, grąžinta vertė priklauso nuo bibliotekos įdiegimo. Tai gali būti nulinis rodiklis arba ne.
calloc () prototipas
negaliojantis * calloc (dydis_t skaičius, dydis_t dydis);
Funkcija apibrėžta antraštės faile.
calloc () parametrai
- num: Nepasirašyta integralinė reikšmė, nurodanti elementų skaičių.
- dydis: Nepasirašyta integralinė reikšmė, vaizduojanti atminties bloką baitais.
calloc () Grąžinimo vertė
Funkcija calloc () grąžina:
- rodyklė į atminties bloko pradžią, kurią skiria funkcija.
- nulinis rodyklė, jei nepavyksta paskirstyti.
1 pavyzdys: Kaip veikia calloc () funkcija?
#include #include using namespace std; int main() ( int *ptr; ptr = (int *)calloc(5, sizeof(int)); if (!ptr) ( cout << "Memory Allocation Failed"; exit(1); ) cout << "Initializing values… " << endl << endl; for (int i = 0; i < 5; i++) ( ptr(i) = i * 2 + 1; ) cout << "Initialized values" << endl; for (int i = 0; i < 5; i++) ( /* ptr(i) and *(ptr+i) can be used interchangeably */ cout << *(ptr + i) << endl; ) free(ptr); return 0; )
Kai paleisite programą, išvestis bus:
Inicializuojamos vertės … Inicializuojamos vertės 1 3 5 7 9
2 pavyzdys: calloc () funkcija su nuliu dydžiu
#include #include using namespace std; int main() ( int *ptr = (int *)calloc(0, 0); if (ptr == NULL) ( cout << "Null pointer"; ) else ( cout << "Address = " << ptr << endl; ) free(ptr); return 0; )
Kai paleisite programą, išvestis bus:
Adresas = 0x371530