Malloc () Funktsioon C teegis NÄITEGA

Lang L: none (table-of-contents):

Anonim

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 nullkoha, mis osutab mälukohale. Tagastatud kursor on tavaliselt tühine. See tähendab, et saame malloc-funktsiooni määrata igale osutile.

Süntaks

ptr = (cast_type *) malloc (byte_size);

Siin,

  • ptr on cast_type'i osuti.
  • Funktsioon malloc tagastab osuti baidi_suuruse eraldatud mällu.
Example: ptr = (int *) malloc (50)

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

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

#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));}}

Väljund:

Value of the 6th integer is 480

  1. Pange tähele, et sizeof ( int) asemel kasutati sizeof (* ptr) , et muuta kood kindlamaks, kui * ptr-deklaratsioon hiljem sisestatakse teisele andmetüübile.
  2. Jaotus võib ebaõnnestuda, kui mälu pole piisavalt. Sellisel juhul tagastab NULL kursori. NULL-kursori kontrollimiseks peaksite lisama koodi.
  3. Pidage meeles, et eraldatud mälu on külgnev ja seda saab käsitleda massiivina. Massiivielementidele juurdepääsemiseks võime kasutada osuti aritmeetikat, mitte sulgudes []. Massiivielementidele viitamiseks soovitame kasutada klahvi +, kuna juurdekasvu ++ või + = kasutamine muudab kursori salvestatud aadressi.

Malloc-funktsiooni saab kasutada ka nii andmetüübi kui ka keerukate andmetüüpide, näiteks struktuuride puhul.