exit () освобождает выделенную память для _SUCCESS и _FAILURE

Это короткий фрагмент кода с двумя вызовамиexit(3) в случае неудачи. Эти вызовы освобождают память, выделенную malloc? Поиск Google однажды говорит, что делает, и даже больше раз, это не ...

Должен ли я добавить бесплатно ()?

Также: что лучшеif (!word)(это также будет работать, например, для слова == 0, которое отличается от слова == NULL, поэтому я думаю, что это неправильно) илиif (word == NULL) ?

char *word = NULL, *temp = NULL;
    word = (char *)malloc(sizeof(char) * size);

    if (!word) {            /* or maybe rather it should be (word == NULL)  */
        perror("malloc fail");
        if (fclose(fp)) {
            perror("fclose fail");
            exit(3);                            /* exit without free ? */
        }
        exit(3);                                /* exit without free ? */
    }

Заранее спасибо!

Ответы на вопрос(4)

Ваш ответ на вопрос