malloc()-funktio C-kirjastossa, jossa on EXAMPLE

Mikä on malloc C:ssä?

Malloc()-funktio tarkoittaa muistin varausta. Se on toiminto, jota käytetään varaamaan muistilohko dynaamisesti. Se varaa määritetyn kokoisen muistitilan ja palauttaa muistipaikkaan osoittavan nollaosoittimen. Palautettu osoitin on yleensä tyyppiä void. Se tarkoittaa, että voimme määrittää malloc-funktion mille tahansa osoittimelle.

Syntaksi

ptr = (cast_type *) malloc (byte_size);

Täällä

  • ptr on cast_typen osoitin.
  • Malloc-funktio palauttaa osoittimen varattuun muistiin byte_size.
Example: ptr = (int *) malloc (50)

Kun tämä käsky on suoritettu onnistuneesti, varataan 50 tavun muistitilaa. Varatun tilan ensimmäisen tavun osoite on osoitettu osoittimelle ptr, jonka tyyppi on int.

Harkitse toista esimerkkiä malloc-toteutuksesta:

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

lähtö:

Value of the 6th integer is 480

Mikä on malloc C:ssä

  1. Huomaa, että koko(*ptr) sen sijaan käytettiin koko (int) jotta koodista tulee kestävämpi, kun *ptr-ilmoitus kirjoitetaan myöhemmin eri tietotyyppiin.
  2. Varaus voi epäonnistua, jos muisti ei riitä. Tässä tapauksessa se palauttaa NULL-osoittimen. Joten sinun tulee sisällyttää koodi tarkistaaksesi NULL-osoittimen.
  3. Muista, että varattu muisti on peräkkäinen ja sitä voidaan käsitellä taulukona. Voimme käyttää osoitinaritmetiikkaa taulukon elementtien käyttämiseen hakasulkeiden [ ] sijaan. Suosittelemme käyttämään + viittaamaan taulukon elementteihin, koska inkrementaatio ++ tai += muuttaa järjestelmän tallentamaa osoitetta. osoitin.

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