Утечки ресурсов
Утечка ресурсов возникает всякий раз, когда функция выделяет блок памяти, открывает файл, но при выходе забывает его освободить/закрыть. Чаще всего это происходит при преждевременном выходе из функции.
Рассмотрим следующий пример:
foo()
{
FILE *ff
char *p1, *p2;
p1 = malloc(XXL);
ff = fopen(FN,"r");
…
if (bar()==ERROR) return -1;
…
p2 = malloc(XXL);
…
free(p1);
free(p2);
fclose(ff);
return 0;
}