sai () livre memória alocada em _SUCCESS e _FAILURE
Este é um pequeno trecho de código, com duas chamadas paraexit(3)
em caso de falha. Essas chamadas desalocam a memória alocada pelo malloc? A pesquisa do Google uma vez diz que sim e, mais vezes, não ...
Devo adicionar free ()?
Além disso: qual é melhorif (!word)
(também funcionaria para, por exemplo, word == 0 que é diferente da palavra == NULL, então eu acho que está errado) ouif (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 ? */
}
Desde já, obrigado!