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

Rozmiar się nie zmienił ,  2 lata temu
m
Anulowanie wersji 322608 autorstwa 82.145.77.239 (dyskusja)chodzi o stertę a nie o start
m (Anulowanie wersji 322608 autorstwa 82.145.77.239 (dyskusja)chodzi o stertę a nie o start)
Znacznik: Anulowanie edycji
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 ===
6160

edycji