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

Usunięta treść Dodana treść
m →‎Zobacz też: Oleksandr Kaleniuk
Mik (dyskusja | edycje)
→‎Popularne błędy: uzupełnienie i drobiazgi
Linia 295:
 
== Popularne błędy ==
Jednym z najczęstszych błędów, oprócz prób wykonania operacji na wskaźniku NULL, są odwołania się do obszaru pamięci po jego zwolnieniu. Po wykonaniu funkcji <tt>free()</tt> nie możemy już wykonywać żadnych odwołań do zwolnionego obszaru. InnymInnymi rodzajemrodzajami błędów są:
# odwołania do adresów pamięci, które są poza obszarem przydzielonym funkcją <tt>malloc()</tt> i stosem;
# brak sprawdzania, czy dany wskaźnik nie ma wartości NULL;
# wycieki pamięci, czyli gubienie wskaźników do zaalokowanej pamięci powstającei w tym wypadku przezkonsekwencji niezwalnianie całej, przydzielonej wcześniej pamięci{{r|memleak}};
# odwołania do obszarów w których nie ma prawidłowych danych (np. poprzez rzutowanie wskaźnika na nieodpowiedni typ).
 
===Wycieki pamięci ===
 
Przykład funkcji powodującej wyciek pamięci ( tworzy wskaźnik, przydziela pamięć i nie zwalnia pamięci po zakończeniu funkcji): <ref>[http://www.geeksforgeeks.org/what-is-memory-leak-how-can-we-avoid/ What is Memory Leak? How can we avoid? February 6, 2010]</ref>
 
<source lang=c>