Malloc () Funkció a C könyvtárban, PÉLDA

Tartalomjegyzék:

Anonim

Mi a malloc C-ben?

A malloc () függvény a memóriafoglalást jelenti. Ez egy olyan funkció, amelyet a memória blokkjának dinamikus lefoglalására használnak. Foglal egy meghatározott méretű memóriaterületet, és visszaadja a memóriahelyre mutató nullmutatót. A visszaadott mutató általában érvénytelen típusú. Ez azt jelenti, hogy bármely mutatóhoz hozzárendelhetünk malloc funkciót.

Szintaxis

ptr = (cast_type *) malloc (byte_size);

Itt,

  • A ptr a cast_type mutató.
  • A malloc függvény visszaad egy mutatót a byte_size lefoglalt memóriájába.
Example: ptr = (int *) malloc (50)

Ennek a utasításnak a sikeres végrehajtása esetén 50 bájt memóriaterület van fenntartva. A fenntartott terület első bájtjának címe az int típusú ptr mutatóhoz van hozzárendelve.

Vegyünk egy másik példát a malloc megvalósítására:

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

Kimenet:

Value of the 6th integer is 480

  1. Figyelje meg, hogy a sizeof (* ptr) helyett a sizeof (int) helyett a kód robusztusabbá tétele volt, amikor a * ptr deklarációt később más adattípusra írják.
  2. Az allokáció meghiúsulhat, ha a memória nem elegendő. Ebben az esetben NULL mutatót ad vissza. Tehát a NULL mutató ellenőrzéséhez kódot kell tartalmaznia.
  3. Ne feledje, hogy a lefoglalt memória összefüggő, és tömbként kezelhető. A zárójelek használata helyett mutatós aritmetikát használhatunk a tömb elemek eléréséhez. Azt javasoljuk, hogy a + gombbal utaljon a tömb elemekre, mert a ++ vagy a + = növekmény használata megváltoztatja a mutató által tárolt címet.

A Malloc függvény használható a karakter adattípussal, valamint az összetett adattípusokkal, például a struktúrákkal.