Przejdź do zawartości

C/Wskaźniki: Różnice pomiędzy wersjami

Rozmiar się nie zmienił ,  4 lata temu
m
Anulowanie wersji 322608 autorstwa 82.145.77.239 (dyskusja)chodzi o stertę a nie o start
Usunięta treść Dodana treść
m Anulowanie wersji 322608 autorstwa 82.145.77.239 (dyskusja)chodzi o stertę a nie o start
Znacznik: Anulowanie edycji
Linia 211:
Dostępny jest jednak drugi rodzaj rezerwacji (czyli alokacji) pamięci. Jest to alokacja na '''stercie (ang. ''heap'')'''. Sterta to obszar pamięci wspólny dla całego programu, przechowywane są w nim zmienne, których czas życia nie jest związany z poszczególnymi blokami. Musimy sami rezerwować dla nich miejsce i to miejsce zwalniać, ale dzięki temu możemy to zrobić w dowolnym momencie działania programu.
 
Należy pamiętać, że rezerwowanie i zwalnianie pamięci na starciestercie zajmuje więcej czasu niż analogiczne działania na stosie. Dodatkowo, zmienna zajmuje na stercie więcej miejsca niż na stosie - sterta utrzymuje specjalną strukturę, w której trzymane są wolne partie (może to być np. ''lista''). Tak więc używajmy dynamicznej alokacji tam, gdzie jest potrzebna - dla danych, których rozmiaru nie jesteśmy w stanie przewidzieć na etapie kompilacji lub ich żywotność ma być niezwiązana z blokiem, w którym zostały zaalokowane.
 
=== Obsługa pamięci ===
8236

edycji