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!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage