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
Alokacja pamięci nie powiedzie się, gdy nie istnieje wolny '''ciągły''' obszar pamięci o wymaganym rozmiarze (patrz [[fragmentacja zewnętrzna]]).
|