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

Dodane 855 bajtów ,  9 lat temu
→‎Popularne błędy: wyciek pamięci
m (Wycofano edycje użytkownika 77.254.152.249 (dyskusja). Autor przywróconej wersji to 80.54.159.166.)
(→‎Popularne błędy: wyciek pamięci)
# brak sprawdzania, czy dany wskaźnik nie ma wartości NULL
# wycieki pamięci, czyli gubienie wskaźników do zaalokowanej pamięci powstające w tym wypadku przez niezwalnianie całej, przydzielonej wcześniej pamięci
 
===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>
/*
Function with memory leak
http://www.geeksforgeeks.org/what-is-memory-leak-how-can-we-avoid/
*/
#include <stdlib.h>
void f()
{
int *ptr = (int *) malloc(sizeof(int));
/* Do some work */
return; /* Return without freeing ptr*/
}
</source>
 
 
<noinclude>
 
 
Powinno być :
 
<source lang=c>
/*
Function without memory leak
http://www.geeksforgeeks.org/what-is-memory-leak-how-can-we-avoid/
*/
#include <stdlib.h>;
void f()
{
int *ptr = (int *) malloc(sizeof(int));
/* Do some work */
free(ptr);
return;
}
</source>
 
== Zobacz też ==
* [[C/Wskaźniki - więcej|Więcej o wskaźnikach]]
6160

edycji