→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]]
|