Malloc () Funcție în biblioteca C cu EXEMPLU

Cuprins:

Anonim

Ce este malloc în C?

Funcția malloc () reprezintă alocarea memoriei. Este o funcție care este utilizată pentru a aloca dinamic un bloc de memorie. Rezervă spațiu de memorie de dimensiunea specificată și returnează indicatorul nul care indică locația memoriei. Pointerul returnat este de obicei de tip nul. Înseamnă că putem atribui funcția malloc oricărui pointer.

Sintaxă

ptr = (cast_type *) malloc (byte_size);

Aici,

  • ptr este un indicator al cast_type.
  • Funcția malloc returnează un pointer la memoria alocată de byte_size.
Example: ptr = (int *) malloc (50)

Când această instrucțiune este executată cu succes, este rezervat un spațiu de memorie de 50 de octeți. Adresa primului octet de spațiu rezervat este atribuită indicatorului ptr de tip int.

Luați în considerare un alt exemplu de implementare malloc:

#include int main(){int *ptr;ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */if (ptr != NULL) {*(ptr + 5) = 480; /* assign 480 to sixth integer */printf("Value of the 6th integer is %d",*(ptr + 5));}}

Ieșire:

Value of the 6th integer is 480

  1. Observați că sizeof (* ptr) a fost folosit în loc de sizeof (int) pentru a face codul mai robust atunci când declarația * ptr este tipărită mai târziu la un alt tip de date.
  2. Alocarea poate eșua dacă memoria nu este suficientă. În acest caz, returnează un pointer NULL. Deci, ar trebui să includeți cod pentru a verifica dacă există un pointer NULL.
  3. Rețineți că memoria alocată este contiguă și poate fi tratată ca o matrice. Putem folosi aritmetica pointerului pentru a accesa elementele matricei, mai degrabă decât folosind paranteze []. Vă sfătuim să utilizați + pentru a face referire la elementele matricei, deoarece utilizarea incrementării ++ sau + = modifică adresa stocată de pointer.

Funcția Malloc poate fi utilizată și cu tipul de date de caractere, precum și cu tipuri de date complexe, cum ar fi structurile.