Malloc () Funkcja w bibliotece C z PRZYKŁADEM

Spisie treści:

Anonim

Co to jest Malloc w C?

Funkcja malloc () oznacza alokację pamięci. Jest to funkcja służąca do dynamicznego przydzielania bloku pamięci. Rezerwuje przestrzeń pamięci o określonym rozmiarze i zwraca pusty wskaźnik wskazujący na lokalizację pamięci. Zwrócony wskaźnik jest zwykle typu void. Oznacza to, że możemy przypisać funkcję malloc do dowolnego wskaźnika.

Składnia

ptr = (cast_type *) malloc (byte_size);

Tutaj,

  • ptr jest wskaźnikiem typu cast_type.
  • Funkcja malloc zwraca wskaźnik do przydzielonej pamięci o rozmiarze byte_size.
Example: ptr = (int *) malloc (50)

Po pomyślnym wykonaniu tej instrukcji zarezerwowana zostaje przestrzeń pamięci o wielkości 50 bajtów. Adres pierwszego bajtu zarezerwowanej przestrzeni jest przypisany do wskaźnika ptr typu int.

Rozważ inny przykład implementacji malloc:

#include 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));}}

Wynik:

Value of the 6th integer is 480

  1. Zwróć uwagę, że zamiast sizeof (int) użyto sizeof (* ptr) , aby kod był bardziej niezawodny, gdy deklaracja * ptr zostanie później wpisana na inny typ danych.
  2. Alokacja może się nie powieść, jeśli pamięć nie jest wystarczająca. W tym przypadku zwraca wskaźnik NULL. Dlatego należy dołączyć kod sprawdzający wskaźnik NULL.
  3. Należy pamiętać, że przydzielona pamięć jest ciągła i może być traktowana jako tablica. Możemy użyć arytmetyki wskaźników, aby uzyskać dostęp do elementów tablicy, zamiast używać nawiasów kwadratowych []. Radzimy używać + do odwoływania się do elementów tablicy, ponieważ użycie inkrementacji ++ lub + = zmienia adres przechowywany przez wskaźnik.

Funkcji Malloc można również używać z typem danych znakowych, a także ze złożonymi typami danych, takimi jak struktury.