Beendet () den frei zugewiesenen Speicher sowohl für _SUCCESS als auch für _FAILURE
Dies ist ein kurzer Codeausschnitt mit zwei Aufrufen vonexit(3)
im falle eines ausfalls. Heben diese Aufrufe die Zuweisung von Speicher auf, der von malloc zugewiesen wurde? Die Google-Suche sagt es einmal und noch öfter nicht ...
Soll ich free () hinzufügen?
Auch: was ist besserif (!word)
(es würde auch für zB word == 0 funktionieren, was sich von word == NULL unterscheidet, also denke ich, dass es falsch ist) oderif (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 ? */
}
Danke im Voraus!