Malloc () Toiminto C-kirjastossa ESIMERKIN kanssa

Sisällysluettelo:

Anonim

Mikä on malloc C: ssä?

Malloc () -toiminto tarkoittaa muistin allokointia. Se on toiminto, jota käytetään muistilohkon varaamiseen dynaamisesti. Se varaa tietyn kokoisen muistitilan ja palauttaa tyhjän osoittimen muistipaikkaan. Palautettu osoitin on tyypiltään tyhjä. Se tarkoittaa, että voimme määrittää malloc-toiminnon mille tahansa osoittimelle.

Syntaksi

ptr = (cast_type *) malloc (byte_size);

Tässä,

  • ptr on osoitin cast_type.
  • Malloc-funktio palauttaa osoittimen tavun koon allokoituun muistiin.
Example: ptr = (int *) malloc (50)

Kun tämä lause on suoritettu onnistuneesti, varataan 50 tavun muistitila. Varatun tilan ensimmäisen tavun osoite on osoitettu osoitintyypille ptr, jonka tyyppi on int.

Harkitse toista esimerkkiä malloc-toteutuksesta:

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

Tuotos:

Value of the 6th integer is 480

  1. Huomaa, että sizeof (* ptr) -koodia käytettiin sizeof (int) -tekniikan sijasta, jotta koodista saataisiin vankempi, kun * ptr-ilmoitus määritetään myöhemmin toiseen tietotyyppiin.
  2. Kohdistus voi epäonnistua, jos muisti ei riitä. Tässä tapauksessa se palauttaa NULL-osoittimen. Joten sinun tulisi sisällyttää koodi tarkistaa NULL-osoitin.
  3. Muista, että varattu muisti on vierekkäistä ja sitä voidaan käsitellä matriisina. Voimme käyttää osoittimen aritmeettista pääsyä matriisielementteihin hakasulkeiden sijaan. Suosittelemme käyttämään + viittaamaan taulukkoelementteihin, koska lisäys ++ tai + = muuttaa osoittimen tallentaman osoitteen.

Malloc-toimintoa voidaan käyttää myös merkkitietotyypin sekä monimutkaisten tietotyyppien, kuten rakenteiden, kanssa.