утечка ресурсов: fExclfile

При проверке моего кода в Cppcheck я получаю сообщение об ошибке «Утечка ресурсов: fExclfile». Моя программа не дает никаких ошибок компиляции или сбоя. Пожалуйста, помогите мне в этом вопросе.

FILE           *fExclfile = NULL;
FILE           *fExclBadfile = NULL;
if (ExclBadfile != NULL) {
    fExclBadfile = fopen(ExclBadfile, "a");
    if (fExclBadfile == NULL) {
        fprintf(stderr, "%s Can't open the exclusion bad file \"%s\". Check permissions.\n", t_stamp(), ExclBadfile);
        fflush(stderr);
        return 0;   // <- getting resource leak -> 
    };
};

person Rambabu G    schedule 13.04.2016    source источник
comment
Вы уверены, что это не утечка ресурсов для fExclBadfile, который вы не закрываете, когда возвращаетесь? Вы не используете fExclfile, поэтому утечка ресурсов не имеет никакого смысла.   -  person Matt Jordan    schedule 13.04.2016
comment
что такое ExclBadfile и почему вы выделяете его в куче? Если это ресурс в куче, и вы не уничтожаете его при выходе, то это потенциальная утечка памяти.   -  person pcodex    schedule 13.04.2016
comment
Извини, @Мэтт Джордан. Это утечка ресурсов: fExclBadfile.   -  person Rambabu G    schedule 13.04.2016
comment
@Matt Jordan: если я добавлю 'fclose (ExlBadfile); до возврата 0, решит ли это проблему?   -  person Rambabu G    schedule 13.04.2016
comment
Да, я думаю, fclose(fExclBadfile) решит проблему, так как очищает ресурсы, выделенные fopen.   -  person Matt Jordan    schedule 13.04.2016


Ответы (1)


просто убедитесь, что вы закрываете все дескрипторы открытых файлов перед выходом программы, и ExclBdfile также необходимо освободить, если он создан в куче

person pcodex    schedule 13.04.2016