Malloc () Funkcia v knižnici C s PRÍKLADOM

Obsah:

Anonim

Čo je malloc v C?

Funkcia malloc () predstavuje alokáciu pamäte. Je to funkcia, ktorá sa používa na dynamické pridelenie bloku pamäte. Vyhradzuje si pamäťový priestor určenej veľkosti a vracia nulový ukazovateľ smerujúci na miesto v pamäti. Vrátený ukazovateľ je zvyčajne typu void. To znamená, že môžeme priradiť funkciu malloc každému ukazovateľu.

Syntax

ptr = (cast_type *) malloc (byte_size);

Tu,

  • ptr je ukazovateľ typu cast_type.
  • Funkcia malloc vráti ukazovateľ na pridelenú pamäť byte_size.
Example: ptr = (int *) malloc (50)

Po úspešnom vykonaní tohto príkazu je vyhradený pamäťový priestor 50 bajtov. Adresa prvého bajtu vyhradeného priestoru je priradená smerníku ptr typu int.

Zvážte ďalší príklad implementácie malloc:

#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ýkon:

Value of the 6th integer is 480

  1. Všimnite si, že namiesto sizeof (int ) sa použil sizeof (* ptr), aby bol kód robustnejší, keď sa deklarácia * ptr neskôr preleje na iný dátový typ.
  2. Alokácia môže zlyhať, ak pamäť nie je dostatočná. V takom prípade vráti ukazovateľ NULL. Mali by ste teda zahrnúť kód na kontrolu ukazovateľa NULL.
  3. Pamätajte, že pridelená pamäť je súvislá a dá sa s ňou zaobchádzať ako s poľom. Namiesto prístupu k zátvorkám [] môžeme na prístup k prvkom poľa použiť aritmetiku ukazovateľa. Odporúčame použiť + na označenie prvkov poľa, pretože pomocou prírastku ++ alebo + = sa zmení adresa uložená ukazovateľom.

Funkciu Malloc možno tiež použiť s typom údajových údajov, ako aj so zložitými údajovými typmi, ako sú napríklad štruktúry.