malloc() Funkcija u C biblioteci s PRIMJEROM
Što je malloc u C-u?
Funkcija malloc() označava dodjelu memorije. To je funkcija koja se koristi za dinamičku dodjelu bloka memorije. Rezervira memorijski prostor određene veličine i vraća nulti pokazivač koji pokazuje na memorijsku lokaciju. Vraćeni pokazivač obično je tipa void. To znači da bilo kojem pokazivaču možemo dodijeliti funkciju malloc.
Sintaksa
ptr = (cast_type *) malloc (byte_size);
Ovdje,
- ptr je pokazivač na cast_type.
- Funkcija malloc vraća pokazivač na dodijeljenu memoriju byte_size.
Example: ptr = (int *) malloc (50)
Kada se ova izjava uspješno izvrši, rezervira se memorijski prostor od 50 bajtova. Adresa prvog bajta rezerviranog prostora dodjeljuje se pokazivaču ptr tipa int.
Razmotrite još jedan primjer malloc implementacije:
#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)); } }
Izlaz:
Value of the 6th integer is 480
- Primijeti da sizeof(*ptr) korišten je umjesto veličina(int) kako bi kod bio robusniji kada se *ptr deklaracija kasnije priredi na drugu vrstu podataka.
- Dodjeljivanje možda neće uspjeti ako memorija nije dovoljna. U ovom slučaju, vraća NULL pokazivač. Dakle, trebali biste uključiti kod za provjeru pokazivača NULL.
- Imajte na umu da je dodijeljena memorija kontinuirana i da se može tretirati kao niz. Možemo koristiti aritmetiku pokazivača za pristup elementima niza umjesto korištenja zagrada []. Savjetujemo da koristite + za pozivanje na elemente polja jer korištenje inkrementacije ++ ili += mijenja adresu pohranjenu od strane pokazivač.
Funkcija Malloc također se može koristiti sa znakovnim tipom podataka, kao i sa složenim tipovima podataka kao što su strukture.