Kaj je malloc v C?
Funkcija malloc () pomeni dodeljevanje pomnilnika. To je funkcija, ki se uporablja za dinamično dodeljevanje bloka pomnilnika. Pridržuje pomnilniški prostor določene velikosti in vrne ničelni kazalec, ki kaže na mesto pomnilnika. Vrnjeni kazalec je običajno tipa void. To pomeni, da lahko kateremu koli kazalcu dodelimo funkcijo malloc.
Sintaksa
ptr = (cast_type *) malloc (byte_size);
Tukaj,
- ptr je kazalec cast_type.
- Funkcija malloc vrne kazalec na dodeljeni pomnilnik byte_size.
Example: ptr = (int *) malloc (50)
Ko je ta stavek uspešno izveden, je rezerviran pomnilniški prostor 50 bajtov. Naslov prvega bajta rezerviranega prostora je dodeljen kazalcu ptr tipa int.
Razmislite o drugem primeru izvajanja malloc:
#includeint 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));}}
Izhod:
Value of the 6th integer is 480
- Upoštevajte, da je bil namesto sizeof (int) uporabljen sizeof (* ptr), da je bila koda bolj robustna, ko je deklaracija * ptr pozneje vnesena v drug podatkovni tip.
- Dodelitev morda ne bo uspela, če pomnilnika ne bo dovolj. V tem primeru vrne kazalec NULL. Torej, vključite kodo, da preverite, ali je kazalec NULL.
- Upoštevajte, da je dodeljeni pomnilnik soseden in ga je mogoče obravnavati kot matriko. Za dostop do elementov matrike lahko uporabimo aritmetiko kazalca, namesto da uporabimo oklepaje []. Svetujemo, da uporabite + za sklicevanje na elemente matrike, ker z uporabo povečanja ++ ali + = spremenite naslov, ki ga shrani kazalec.
Funkcija Malloc se lahko uporablja tudi s tipom podatkov o znakih, pa tudi s kompleksnimi podatkovnimi tipi, kot so strukture.