malloc() Funktsioon C teegis koos EXAMPLE'iga

Mis on malloc C-s?

Funktsioon malloc () tähistab mälu eraldamist. See on funktsioon, mida kasutatakse mäluploki dünaamiliseks eraldamiseks. See reserveerib määratud suurusega mäluruumi ja tagastab mälukohale osutava nullkursori. Tagastatud kursor on tavaliselt tühine. See tähendab, et saame määrata mis tahes osutile malloc funktsiooni.

Süntaks

ptr = (cast_type *) malloc (byte_size);

Siin

  • ptr on cast_type kursor.
  • Funktsioon malloc tagastab kursori eraldatud mälule byte_size.
Example: ptr = (int *) malloc (50)

Kui see lause on edukalt täidetud, reserveeritakse 50 baiti suurune mäluruum. Reserveeritud ruumi esimese baidi aadress määratakse int tüüpi osutile ptr.

Mõelge veel ühele malloci rakendamise näitele:

#include <stdlib.h>
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));
    }
}

Väljund:

Value of the 6th integer is 480

Mis on malloc keeles C

  1. Märka seda suurus(*ptr) asemel kasutati suurus (int) et muuta kood tugevamaks, kui *ptr-deklaratsioon sisestatakse hiljem mõnele teisele andmetüübile.
  2. Jaotamine võib ebaõnnestuda, kui mälust ei piisa. Sel juhul tagastab see NULL osuti. Seega peaksite NULL-osuti kontrollimiseks lisama koodi.
  3. Pidage meeles, et eraldatud mälu on külgnev ja seda saab käsitleda massiivina. Massiivielementidele juurdepääsuks saame kasutada kursori aritmeetikat, mitte kasutada sulgusid [ ]. Soovitame kasutada klahvi +, et viidata massiivi elementidele, kuna inkrementatsiooni ++ või += kasutamine muudab faili salvestatud aadressi. pointer.

Funktsiooni Malloc saab kasutada ka nii märgi andmetüübi kui ka keerukate andmetüüpidega, näiteks struktuuridega.