Kas yra mallokas C?
Funkcija malloc () reiškia atminties paskirstymą. Tai funkcija, naudojama dinamiškai paskirstyti atminties bloką. Tai rezervuoja nurodyto dydžio atminties vietą ir grąžina nulinį rodyklę, nukreipiančią į atminties vietą. Grąžintas žymeklis paprastai yra tuščias. Tai reiškia, kad mes galime priskirti malloc funkciją bet kuriam žymekliui.
Sintaksė
ptr = (cast_type *) malloc (byte_size);
Čia
- ptr yra „cast_type“ žymeklis.
- „Malloc“ funkcija grąžina žymeklį į paskirtą „byte_size“ atmintį.
Example: ptr = (int *) malloc (50)
Kai šis sakinys sėkmingai įvykdomas, rezervuojama 50 baitų atminties vieta. Pirmojo rezervuotos vietos baito adresas priskiriamas int tipo žymekliui ptr.
Apsvarstykite dar vieną malloc įgyvendinimo pavyzdį:
#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));}}
Išvestis:
Value of the 6th integer is 480
- Atkreipkite dėmesį, kad vietoj sizeof (int ) buvo naudojamas sizeof (* ptr), kad kodas būtų patikimesnis, kai vėliau * ptr deklaracija yra surenkama į kitą duomenų tipą.
- Priskyrimas gali nepavykti, jei nepakanka atminties. Tokiu atveju jis grąžina NULL žymeklį. Taigi, norėdami patikrinti NULL žymeklį, turėtumėte įtraukti kodą.
- Atminkite, kad skirta atmintis yra gretima ir ją galima traktuoti kaip masyvą. Norėdami pasiekti masyvo elementus, galime naudoti žymeklio aritmetiką, o ne skliausteliuose []. Patariame naudoti +, norint nurodyti masyvo elementus, nes naudojant didinimą ++ arba + = keičiamas žymeklio saugomas adresas.
„Malloc“ funkcija taip pat gali būti naudojama su simbolių duomenų tipu, taip pat su sudėtingais duomenų tipais, tokiais kaip struktūros.