Malloc () Funkcija C bibliotekoje su PAVYZDŽIU

Kas yra mallokas C?

Funkcija malloc () reiškia atminties paskirstymą. Tai funkcija, naudojama dinamiškai paskirstyti atminties bloką. Tai rezervuoja nurodyto dydžio atminties vietą ir grąžina nulinį rodyklę, nukreipiančią į atminties vietą. Grąžintas žymeklis paprastai yra tuščias. Tai reiškia, kad mes galime priskirti malloc funkciją bet kuriam žymekliui.

Sintaksė

ptr = (cast_type *) malloc (byte_size);

Čia

  • ptr yra „cast_type“ žymeklis.
  • „Malloc“ funkcija grąžina žymeklį į paskirtą „byte_size“ atmintį.
Example: ptr = (int *) malloc (50)

Kai šis sakinys sėkmingai įvykdomas, rezervuojama 50 baitų atminties vieta. Pirmojo rezervuotos vietos baito adresas priskiriamas int tipo žymekliui ptr.

Apsvarstykite dar vieną malloc įgyvendinimo pavyzdį:

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

Išvestis:

Value of the 6th integer is 480

  1. Atkreipkite dėmesį, kad vietoj sizeof (int ) buvo naudojamas sizeof (* ptr), kad kodas būtų patikimesnis, kai vėliau * ptr deklaracija yra surenkama į kitą duomenų tipą.
  2. Priskyrimas gali nepavykti, jei nepakanka atminties. Tokiu atveju jis grąžina NULL žymeklį. Taigi, norėdami patikrinti NULL žymeklį, turėtumėte įtraukti kodą.
  3. Atminkite, kad skirta atmintis yra gretima ir ją galima traktuoti kaip masyvą. Norėdami pasiekti masyvo elementus, galime naudoti žymeklio aritmetiką, o ne skliausteliuose []. Patariame naudoti +, norint nurodyti masyvo elementus, nes naudojant didinimą ++ arba + = keičiamas žymeklio saugomas adresas.

„Malloc“ funkcija taip pat gali būti naudojama su simbolių duomenų tipu, taip pat su sudėtingais duomenų tipais, tokiais kaip struktūros.

Įdomios straipsniai...