Alokacja pamięci: Różnice pomiędzy wersjami

[wersja przejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
no src
"co może doprowadzić nawet do jego zawieszenie, unicestwienia, znacznego spowolnienia działania całego systemu lub tez jego zawieszenia." Pleonazm, dwukrotnie napisane o zawieszeniu się systemu.
Linia 7:
Dla przykładu w języku [[c (język programowania)|C]], do ręcznej dynamicznej alokacji i dezalokacji pamięci służą [[podprogram|funkcje]] [[libc|biblioteki standardowej]]: <code>[[malloc]]</code> (alokacja) i <code>[[free (libc)|free]]</code> (dezalokacja); w języku [[C++]] służą do tego specjalne słowa kluczowe ([[operator (programowanie)|operatory]]): <code>[[new]]</code> oraz <code>[[delete]]</code>.
 
Systemy operacyjne automatycznie zwalniają pamięć przydzieloną procesom, gdy te zakończą działanie bez uprzedniej dezalokacji otrzymanej pamięci. Na poziomie aplikacji pominięcie dezalokacji doprowadza do [[wyciek pamięci|wycieku pamięci]], co w przypadku aplikacji działających długi czas (np. serwery, lub inne aplikacje wykonujące dużo dynamicznej alokacji i dezalokacji pamięci), jest uważane za poważny błąd, jako, iż z biegiem czasu proces taki będzie potrzebował coraz więcej pamięci, co może doprowadzić nawet do jego zawieszeniezawieszenia, unicestwienia, lub znacznego spowolnienia działania całego systemu lub tez jego zawieszenia.
 
Alokacja pamięci nie powiedzie się, gdy nie istnieje wolny '''ciągły''' obszar pamięci o wymaganym rozmiarze (patrz [[fragmentacja zewnętrzna]]).