exit(0)

exit(0)

por Rafael Reggiani Manzo -
Número de respostas: 7
Este comando, ao fechar o programa, já libera todas as posições de memória que aloquei?
Em resposta à Rafael Reggiani Manzo

Re: exit(0)

por Joao M. Miranda -
Não Manzo. Tudo o que você alocou dinamicamente, você tem que liberar.
O que alocou estatiticamente é desalocado sem você.
Em resposta à Joao M. Miranda

Re: exit(0)

por Felipe Lamberti Amado -
Teoricamente né? Porque depois que o programa é fechado a memória é desalocada (pelo menos no Ubuntu).
Em resposta à Felipe Lamberti Amado

Re: exit(0)

por Evandro Giovanini -
Em resposta à Evandro Giovanini

Re: exit(0)

por Felipe Lamberti Amado -
"In modern operating systems, normal memory used by an application is released when the application terminates."
Em resposta à Felipe Lamberti Amado

Re: exit(0)

por Joao M. Miranda -

Sugiro fortemente para vocês olharem sobre 'valgrind'...
Ele responderá todas as dúvidas de quanto alocou de memória e quanto liberou.

Novamente, não importa o que aconteça, vocês são responsáveis pela memória que alocaram dinamicamente. Apesar do sistema desalocar quando o programa é terminado, voce poder ter problemas de memória durante a execução.

Então, liberem sempre a memória.
Em resposta à Joao M. Miranda

Re: exit(0)

por Carlos E. Ferreira -
Concordo inteiramente com o João. Acho que devemos, sempre que possível, exercitar um estilo de programação "defensiva". Se você puder fazer algo para defender seus programas, faça.

Se tentou alocar, verifique se deu certo; se alocou, libere; e por aí vai.

Mais sobre programação defensiva pode ser encontrado no EXCELENTE livro do Kernigham e Pike:

The practice of programming

abraços,
--
carlinhos