Malloc () Funkce v knihovně C s PŘÍKLADEM

Obsah:

Anonim

Co je malloc v C?

Funkce malloc () znamená alokaci paměti. Jedná se o funkci, která se používá k dynamickému přidělení bloku paměti. Vyhrazuje si paměťový prostor zadané velikosti a vrací nulový ukazatel ukazující na paměťové místo. Vrácený ukazatel je obvykle typu void. To znamená, že můžeme funkci malloc přiřadit libovolnému ukazateli.

Syntax

ptr = (cast_type *) malloc (byte_size);

Tady,

  • ptr je ukazatel cast_type.
  • Funkce malloc vrací ukazatel na alokovanou paměť byte_size.
Example: ptr = (int *) malloc (50)

Když je tento příkaz úspěšně proveden, je rezervován paměťový prostor 50 bajtů. Adresa prvního bajtu vyhrazeného prostoru je přiřazena ukazateli ptr typu int.

Zvažte další příklad implementace 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ýstup:

Value of the 6th integer is 480

  1. Všimněte si, že místo sizeof (int ) byl použit sizeof (* ptr), aby byl kód robustnější, když se * ptr deklarace později vysílá na jiný datový typ.
  2. Alokace může selhat, pokud paměť není dostatečná. V tomto případě vrátí ukazatel NULL. Měli byste tedy zahrnout kód pro kontrolu ukazatele NULL.
  3. Mějte na paměti, že přidělená paměť je souvislá a lze ji považovat za pole. Můžeme použít aritmetiku ukazatele pro přístup k prvkům pole spíše než pomocí závorek []. Doporučujeme použít + k označení prvků pole, protože pomocí přírůstku ++ nebo + = se změní adresa uložená ukazatelem.

Funkci Malloc lze také použít se znakovým datovým typem i se složitými datovými typy, jako jsou struktury.