Hovedforskjell: 'Calloc' og 'Malloc' refererer til ytelsen til dynamisk minneallokering på C-programmeringsspråket. En "calloc" initialiserer det tildelte minnet med null, mens et "malloc" ikke gjør det.
Både 'calloc' og 'malloc' er standardfunksjoner for biblioteket.
Syntaxen er som følger:
void * calloc (number_of_blocks, size_of_each_block_in_bytes);
Her er 'void' en generell C-funksjon, som ikke returnerer noen verdi. Antallet elementer i det første argumentet angir størrelsen i byte fra ett element til det andre argumentet. Adressen returneres etter vellykket partisjonering, ellers returneres en NULL på eventuelle feil i funksjonen.
Syntaxen er som følger:
void * malloc (size_in_bytes);
Spesielt returnerer den adressen på en generisk måte (void *). Hvis 'malloc' ikke tildeler minnet, returneres det -1, ellers returnerer den adressen hvorfra minnet er tildelt. Det tildelte minnet kan være i form av et heltall, etter type som støper tomrommet som int *; Det tildelte minnet kan også være i form av en float, bare ved å støpe samme tomromadresse som float *.
Sammenligning mellom Calloc og Malloc:
Calloc | malloc | |
Grunnleggende funksjoner | Biblioteksfunksjonen tildeler en region i minnet, som er stor nok til å holde "n-elementene" av "størrelse" byte hver. | Bibliotek-funksjonen allokerer bare "størrelsen" byte av minne. |
initialisering | Den initialiserer innholdet av minne til nuller. | Det initialiserer ikke innholdet av minne til nuller. |
Antall argumenter | Her er det to argumenter. | Her er det bare ett argument. |
Fordelte verdier | Den tildelte regionen initialiseres til null. | Innholdet av allokert minne blir ikke endret, det vil si at minnet inneholder uforutsigbare eller søppelverdier, noe som skaper en risiko. |
Returnerer verdi | tomrompekeren (void *). Etter en vellykket allokering, returneres en peker til minneblokken. | tomrompekeren (void *). Etter en vellykket allokering, returneres en peker til minneblokken. |