malloc() függvény a C könyvtárban az EXAMPLE-vel

Mi a malloc C-ben?

A malloc() függvény a memóriafoglalást jelenti. Ez egy memóriablokk dinamikus lefoglalására szolgáló funkció. Lefoglalja a megadott méretű memóriaterületet, és visszaadja a memóriahelyre mutató nullmutatót. A visszaadott mutató általában void típusú. Ez azt jelenti, hogy bármely mutatóhoz hozzárendelhetünk malloc függvényt.

Szintaxis

ptr = (cast_type *) malloc (byte_size);

Itt,

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

Ha ez az utasítás sikeresen végrehajtódik, 50 bájtos memóriaterület kerül lefoglalásra. A lefoglalt 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 <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));
    }
}

output:

Value of the 6th integer is 480

Mi a malloc C-ben

  1. Figyelj erre mérete(*ptr) helyett használták mérete (int) a kód robusztusabbá tétele érdekében, amikor a *ptr deklarációt később egy másik adattípusba írják át.
  2. A kiosztás sikertelen lehet, 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 megadnia.
  3. Ne feledje, hogy a lefoglalt memória összefüggő, és tömbként kezelhető. A tömbelemek eléréséhez használhatunk mutató aritmetikát, nem pedig zárójeleket [ ]. Javasoljuk, hogy a + használatával hivatkozzon a tömbelemekre, mert a ++ vagy += növelés megváltoztatja a tömb által tárolt címet. mutató.

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