Diferența principală: "Calloc" și "Malloc" se referă la performanța alocării dinamice a memoriei în limbajul de programare C. O "calloc" inițializează memoria alocată cu zero, în timp ce un "malloc" nu o face.
Ambele "calloc" și "malloc" sunt funcții standard ale bibliotecii.
Sintaxa sa este după cum urmează:
void * calloc (număr de blocuri, size_of_each_block_in_bytes);
Aici, "void" este o funcție generală C, care nu aduce nici o valoare. Numărul de elemente din primul argument specifică dimensiunea în octeți a unui element la al doilea argument. Adresa este returnată după partajarea cu succes, altfel un NULL este returnat pentru orice defecțiune a funcției.
Sintaxa sa este după cum urmează:
void * malloc (size_in_bytes);
Mai exact, returnează adresa într-o manieră generică (void *). Dacă "malloc" nu alocă memoria, ea returnează -1, altfel returnează adresa de la care este alocată memoria. Memoria alocată poate fi sub forma unui întreg, după tipul de exprimare a adresei void ca int *; memoria alocată poate fi, de asemenea, sub forma unui flotor, doar după tipul care distribuie aceeași adresă voidă ca float *.
Comparație între Calloc și Malloc:
calloc | malloc | |
Funcții de bază | Funcția bibliotecă alocă o regiune a memoriei, care este suficient de mare pentru a ține fiecare "bytes" de "mărime". | Funcția bibliotecă alocă doar octeții de dimensiune "dimensiune". |
Inițializarea | Inițializează conținutul memoriei la zero. | Nu inițializează conținutul memoriei la zero. |
Numărul de argumente | Aici există două argumente. | Aici există doar un singur argument. |
Valori alocate | Regiunea alocată este inițializată la zero. | Conținutul memoriei alocate nu este modificat, adică memoria conține valori imprevizibile sau de gunoi, ceea ce creează un risc. |
Returnează valoarea | void pointer (void *). După o alocare reușită, un indicator al blocului de memorie este returnat. | void pointer (void *). După o alocare reușită, un indicator al blocului de memorie este returnat. |