Peamine erinevus: 'Calloc' ja 'Malloc' viitavad dünaamilise mälu jaotuse toimimisele C programmeerimiskeeles. 'Calloc' vormindab eraldatud mälu nulliga, samas kui "malloc" ei ole.
Mõlemad 'calloc' ja 'malloc' on tavalised raamatukogu funktsioonid.
Selle süntaks on järgmine:
void * calloc (number_of_blocks, size_of_each_block_in_bytes);
Siin on „tühine” üldine C-funktsioon, mis ei tagasta ühtegi väärtust. Esimese elemendi elementide arv määrab teise elemendi ühe elemendi baitide suuruse. Aadress tagastatakse pärast edukat partitsiooni, vastasel juhul tagastatakse funktsiooni mis tahes rikke korral NULL.
Selle süntaks on järgmine:
void * malloc (size_in_bytes);
Täpsemalt tagastab see aadressi üldisel viisil (tühine *). Kui „malloc” mälu ei eralda, tagastab see -1, vastasel juhul tagastab see aadressi, kust mälu eraldatakse. Eraldatud mälu võib olla täisarvu kujul, tüübiga, mis annab tühiku aadressi kui int *; eraldatud mälu võib olla ka ujuki kujul, lihtsalt tüübi abil, mis annab sama tühiku aadressi kui ujuk *.
Calloci ja Malloki võrdlus:
Calloc | Malloc | |
Põhifunktsioonid | Raamatukogu funktsioon eraldab mälu regiooni, mis on piisavalt suur, et hoida "suuruse" baitide "n elemente". | Raamatukogu funktsioon eraldab ainult mälu “suuruse” baiti. |
Initsialiseerimine | See vormindab mälu sisu nulliks. | See ei alusta mälu sisu nulliks. |
Argumentide arv | Siin on kaks argumenti. | Siin on ainult üks argument. |
Eraldatud väärtused | Eraldatud piirkond lähtestatakse nullini. | Eraldatud mälu sisu ei muutu, see tähendab, et mälu sisaldab ettearvamatuid või prügi väärtusi, mis tekitab riski. |
Tagastab väärtuse | tühine pointer (tühine *). Pärast edukat jaotamist tagastatakse mälu ploki kursor. | tühine pointer (tühine *). Pärast edukat jaotamist tagastatakse mälu ploki kursor. |