Ce este malloc () în C?

malloc () este o funcție de bibliotecă care permite lui C să aloce dinamic memoria din heap. Heap-ul este o zonă a memoriei în care este stocat ceva.

malloc () face parte din stdlib.h și pentru a-l putea folosi trebuie să îl folosiți #include <stdlib.h>.

Cum se utilizează Malloc

malloc () alocă memoria unei dimensiuni solicitate și returnează un pointer la începutul blocului alocat. Pentru a ține acest indicator returnat, trebuie să creăm o variabilă. Pointerul ar trebui să fie de același tip folosit în declarația malloc.
Aici vom face un pointer către o gamă viitoare de inți

int* arrayPtr;

Spre deosebire de alte limbi, C nu cunoaște tipul de date pentru care alocă memoria; trebuie spus. Din fericire, C are o funcție numită sizeof() pe care le putem folosi.

arrayPtr = (int *)malloc(10 * sizeof(int));

Această declarație a folosit malloc pentru a pune deoparte memoria pentru o matrice de 10 numere întregi. Deoarece dimensiunile se pot schimba între computere, este important să utilizați funcția sizeof () pentru a calcula dimensiunea computerului curent.

Orice memorie alocată în timpul execuției programului va trebui eliberată înainte ca programul să se închidă. La free memorie, putem folosi funcția free ()

free( arrayPtr );

Această declarație va repartiza memoria alocată anterior. C nu vine cu un garbage collector ca și alte limbi, cum ar fi Java. Ca urmare, memoria care nu este eliberată corect va continua să fie alocată după închiderea programului.

Înainte de a continua …

Un revizuire

  • Malloc este utilizat pentru alocarea dinamică a memoriei și este util atunci când nu știți cantitatea de memorie necesară în timpul compilării.
  • Alocarea memoriei permite obiectelor să existe dincolo de sfera blocului curent.
  • C trece după valoare în loc de referință. Utilizarea malloc pentru a aloca memorie și apoi pentru a trece indicatorul către o altă funcție este mai eficientă decât ca funcția să recreeze structura.

Mai multe informații despre programarea C:

  • Manualul pentru începători pentru programarea C.
  • Dacă … altfel se explică afirmația din C
  • Operatorul ternar din C a explicat