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
- 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.
- 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.
- 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ó.