robi wolną pamięć alokowaną przez exit () na _SUCCESS i _FAILURE
To krótki fragment kodu z dwoma wywołaniamiexit(3)
w przypadku awarii. Czy te wywołania zwalniają pamięć przydzieloną przez malloc? Wyszukiwarka Google mówi, że tak, a jeszcze więcej razy ...
Czy powinienem dodać darmowe ()?
Również: co jest lepszeif (!word)
(działałoby to również np. w przypadku słowa == 0, które różni się od słowa == NULL, więc myślę, że jest źle) lubif (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 ? */
}
Z góry dziękuję!