Różnica między statycznym i dynamicznym przydziałem pamięci

Kluczowa różnica - statyczna vs dynamiczna alokacja pamięci
 

Podczas programowania konieczne jest przechowywanie danych obliczeniowych. Te dane są przechowywane w pamięci. Lokalizacje pamięci do przechowywania danych w programowaniu komputerowym są nazywane zmiennymi. Zmienne mają określony typ danych. Dlatego pamięć jest przydzielana do uruchamiania programów. Pamięć można przydzielić na dwa sposoby. Są to statyczne przydzielanie pamięci i dynamiczne przydzielanie pamięci. Podczas przydzielania pamięci statycznej, po przydzieleniu pamięci nie można jej zmienić. Pamięć nie nadaje się do ponownego użycia. Ale w przypadku dynamicznego przydzielania pamięci po przydzieleniu pamięci można ją zmienić. The kluczowa różnica między statycznym a dynamicznym przydzielaniem pamięci jest to w statycznym przydziale pamięci po przydzieleniu pamięci rozmiar pamięci jest stały, podczas gdy w dynamicznym przydziale pamięci, po przydzieleniu pamięci rozmiar pamięci można zmienić.

ZAWARTOŚĆ

1. Przegląd i kluczowa różnica
2. Co to jest statyczny przydział pamięci
3. Co to jest dynamiczna alokacja pamięci
4. Podobieństwa między statycznym i dynamicznym przydziałem pamięci
5. Porównanie obok siebie - statyczna vs dynamiczna alokacja pamięci w formie tabelarycznej
6. Podsumowanie

Co to jest przydział pamięci statycznej?

Przy przydzielaniu pamięci statycznej przydzielona pamięć jest stała. Po przydzieleniu pamięci nie można jej zmienić. Pamięci nie można zwiększyć ani zmniejszyć. Na przykład w języku C, jeśli programista zapisuje int x, co oznacza, że ​​zmienna może przechowywać wartość całkowitą. Liczba bajtów zależy od komputera. Mogą być także tablice. Na przykład. int x [5]; Ten x jest tablicą, która może przechowywać sekwencję danych tego samego typu. Może przechowywać pięć elementów całkowitych. Nie może przechowywać więcej niż pięciu elementów. W Javie tablicę można utworzyć jako, int arr [] = new int [5]; Tablica „arr” może przechowywać 5 wartości całkowitych i nie może przechowywać więcej.

Rysunek 01: Metody alokacji pamięci

W statycznym przydziale pamięci, po przydzieleniu zmiennych, pozostają stałe. Po początkowym przydzieleniu programista nie może zmienić rozmiaru pamięci. Jeśli programista przydzieli tablicę, która może przechowywać 10 elementów, nie będzie możliwe zapisanie wartości większych niż ta podana. Jeśli programista początkowo przydzielił tablicę, która może pomieścić 10 elementów, ale potrzebował tylko 5 elementów, oznacza to marnotrawstwo pamięci. Ta pamięć nie jest już potrzebna, ale nie można jej ponownie użyć. Statyczny przydział pamięci jest stały, ale implementacja jest prosta i łatwa, a także szybka.

Co to jest dynamiczna alokacja pamięci?

Czasami konieczna jest zmiana wielkości pamięci. Pamięć może być przydzielana dynamicznie. W zależności od wstawiania i usuwania elementów danych pamięć może się powiększać lub zmniejszać. Jest to znane jako dynamiczna alokacja pamięci.

W języku C plik nagłówkowy stdlib.h istnieją cztery funkcje do dynamicznego przydzielania pamięci. Są to calloc, malloc, realloc i bezpłatne. Funkcja malloc () przydziela wymagany rozmiar bajtów i zwraca wskaźnik pustki wskazujący pierwszy bajt przydzielonej pamięci. Funkcja calloc () przydziela wymagany rozmiar bajtów i inicjuje je na zero. Następnie zwraca wskaźnik pustej pamięci. Funkcja free () służy do realokacji przydzielonej pamięci. A funkcja realokacji może modyfikować wcześniej przydzieloną pamięć. Po przydzieleniu pamięci za pomocą calloc lub malloc rozmiar pamięci jest stały, ale można go zwiększyć lub zmniejszyć za pomocą funkcji ponownego przydzielenia. W Javie kolekcje mogą być używane do dynamicznego przydzielania pamięci.

Główną zaletą dynamicznego przydzielania pamięci jest to, że oszczędza pamięć. Programista może przydzielić pamięć lub zwolnić pamięć w razie potrzeby. Pamięć może zostać ponownie przydzielona podczas wykonywania i może zwolnić pamięć, gdy nie jest wymagana. Dynamiczny przydział pamięci jest również skuteczniejszy niż przydział pamięci statycznej. Wadą jest to, że implementacja dynamicznej alokacji pamięci jest złożona.

Jakie są podobieństwa między statyczną a dynamiczną alokacją pamięci?

  • Oba są mechanizmami alokacji pamięci.
  • Oba powinny być zaimplementowane przez programistę ręcznie.

Jaka jest różnica między statycznym a dynamicznym przydzielaniem pamięci?

Statyczna a dynamiczna alokacja pamięci

Statyczny przydział pamięci to metoda przydziału pamięci, a po przydzieleniu pamięci jest ona ustalana. Dynamiczny przydział pamięci to metoda przydziału pamięci, a po przydzieleniu pamięci można ją zmienić.
 Modyfikacja
W przypadku statycznego przydzielania pamięci zmiana rozmiaru po początkowym przydzieleniu nie jest możliwa. W przypadku dynamicznego przydzielania pamięci pamięć można odpowiednio zminimalizować lub zmaksymalizować.
Realizacja
Statyczny przydział pamięci jest łatwy do wdrożenia. Dynamiczna alokacja pamięci jest złożona do wdrożenia.
 Prędkość
W pamięci statycznej wykonanie alokacji jest szybsze niż dynamiczna alokacja pamięci. W pamięci dynamicznej wykonywanie przydziału jest wolniejsze niż przydział pamięci statycznej.
Wykorzystanie pamięci
Podczas przydzielania pamięci statycznej nie można ponownie użyć nieużywanej pamięci. Dynamiczny przydział pamięci pozwala na ponowne użycie pamięci. W razie potrzeby programista może przydzielić więcej pamięci. W razie potrzeby może zwolnić pamięć.

streszczenie - Statyczna a dynamiczna alokacja pamięci

W programowaniu statyczna alokacja pamięci i dynamiczna alokacja pamięci to dwa mechanizmy alokacji pamięci. Różnica między statycznym a dynamicznym przydzielaniem pamięci polega na tym, że w przydzielaniu pamięci statycznej po przydzieleniu pamięci rozmiar pamięci jest stały, natomiast w przypadku przydzielania pamięci dynamicznej, po przydzieleniu pamięci, rozmiar pamięci można zmienić. Programista może zdecydować, czy pamięć powinna być statyczna czy dynamiczna, w zależności od aplikacji.

Pobierz plik PDF statycznej vs dynamicznej alokacji pamięci

Możesz pobrać wersję PDF tego artykułu i używać go do celów offline zgodnie z cytatem. Pobierz wersję PDF tutaj: Różnica między statycznym a dynamicznym przydziałem pamięci

Odniesienie:

1.Kayal, Somnath. „KAYAL SOMNATH”. Różnica między statycznym przydziałem pamięci a dynamicznym przydziałem pamięci, 1 stycznia 1970 r. Dostępne tutaj 
2.tutorialspoint.com. „Tablice w C.” Punkt. Dostępny tutaj 
3. nowe technologie. Pamięć statyczna a pamięć dynamiczna | Samouczek języka C, Naresh i Technologies, 19 września 2016 r. Dostępny tutaj