Kas ir malloks C?
Funkcija malloc () apzīmē atmiņas piešķiršanu. Tā ir funkcija, ko izmanto, lai dinamiski piešķirtu atmiņas bloku. Tas rezervē noteikta izmēra atmiņas vietu un atgriež nulles rādītāju, kas norāda uz atmiņas vietu. Atgrieztais rādītājs parasti ir tukšs. Tas nozīmē, ka mēs varam piešķirt malloc funkciju jebkuram rādītājam.
Sintakse
ptr = (cast_type *) malloc (byte_size);
Šeit,
- ptr ir cast_type rādītājs.
- Malloc funkcija atgriež rādītāju atvēlētajā atmiņā byte_size.
Example: ptr = (int *) malloc (50)
Kad šis priekšraksts ir veiksmīgi izpildīts, tiek rezervēta 50 baitu atmiņas vieta. Rezervētās vietas pirmā baita adrese tiek piešķirta int tipa rādītājam ptr.
Apsveriet vēl vienu malloc ieviešanas piemēru:
#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));}}
Izeja:
Value of the 6th integer is 480
- Ievērojiet, ka sizeof (* ptr) vietā tika izmantots sizeof (int) , lai padarītu kodu izturīgāku, kad vēlāk * ptr deklarācija tiek veidota citam datu tipam.
- Piešķirt var neizdoties, ja nepietiek atmiņas. Šajā gadījumā tas atgriež NULL rādītāju. Tātad, lai pārbaudītu NULL rādītāju, jums jāiekļauj kods.
- Paturiet prātā, ka piešķirtā atmiņa ir blakus, un to var uzskatīt par masīvu. Lai piekļūtu masīva elementiem, mēs varam izmantot rādītāju aritmētiku, nevis izmantot iekavas []. Mēs iesakām izmantot +, lai atsauktos uz masīva elementiem, jo, izmantojot pieaugumu ++ vai + =, tiek mainīta rādītāja saglabātā adrese.
Malloc funkciju var izmantot arī ar rakstzīmju datu tipu, kā arī sarežģītiem datu tipiem, piemēram, struktūrām.