Борьба с утечками ресурсов и переполняющимися буферами

Утечки ресурсов


Утечка ресурсов возникает всякий раз, когда функция выделяет блок памяти, открывает файл, но при выходе забывает его освободить/закрыть. Чаще всего это происходит при преждевременном выходе из функции.

Рассмотрим следующий пример:

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;

}



Содержание раздела