Gdzie znajduje się sterta na mapie pamięci maszyny?
Gdzie znajduje się sterta na mapie pamięci maszyny?

Wideo: Gdzie znajduje się sterta na mapie pamięci maszyny?

Wideo: Gdzie znajduje się sterta na mapie pamięci maszyny?
Wideo: Memory Management Tutorial in Java | Java Stack vs Heap | Java Training | Edureka 2024, Kwiecień
Anonim

Pod wyższymi adresami znajduje się stos a pod niższym adresem znajduje się sterta . Dwójka pamięć regiony alokacji rosną w środku przestrzeni adresowej, która jest nieużywana i nieprzydzielona.

Co więcej, gdzie w pamięci znajduje się sterta?

Stos służy do statycznego pamięć przydział i Sterta dla dynamicznych pamięć przydział, oba przechowywane w komputerze Baran . Zmienne alokowane na stos są przechowywane bezpośrednio do pamięć i dostęp do tego pamięć jest bardzo szybki, a jego alokacją zajmuje się podczas kompilacji programu.

Co więcej, czym jest pamięć sterty? A sterta pamięci to lokalizacja w pamięć gdzie pamięć mogą być przydzielane w trybie losowego dostępu. W przeciwieństwie do stosu, w którym pamięć są przydzielane i udostępniane w ściśle określonej kolejności, poszczególne elementy danych są alokowane na sterta są zazwyczaj uwalniane w sposób asynchroniczny względem siebie.

Pojawia się również pytanie, gdzie w pamięci znajduje się ta sterta i w jakim kierunku rośnie?

ten Sterta to segment, w którym dynamiczny pamięć zwykle ma miejsce przydział. Ten obszar zwykle zaczyna się na końcu segmentu BSS i rośnie w górę do wyżej pamięć adresy. W C jest zarządzany przez malloc / new, free / delete, które używają wywołań systemowych brk i sbrk do dostosowania jego rozmiaru.

Skąd malloc czerpie pamięć?

w C, dynamiczny pamięć jest przydzielany ze sterty za pomocą niektórych standardowych funkcji bibliotecznych. Dwie kluczowe dynamiki pamięć funkcje są malloc () i wolne(). ten malloc () funkcja przyjmuje pojedynczy parametr, którym jest rozmiar żądanego pamięć obszar w bajtach. Zwraca wskaźnik do przydzielonego pamięć.

Zalecana: