Пример:
int main()
{
int fd;
char *filename;
filename = malloc_filename();
fd = open(filename, O_RDWR);
if (!fd) {
perror(filename);
/* free(filename); */
return 1;
}
doing_something(fd);
/* free(filename); */
/* close(fd); */
return 0;
}
Что плохого, если я не сделаю free() и close()? Какие подводные камни? Я раньше думал, что valgrind ругается, если сам не сделал free(), но нет (не исключено, что я неправильно воспользовался valgrind).








