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 ? */
}
Заранее спасибо!