[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: Erro com free



On Tue, Apr 02 2002 at 05:47:03pm -0300, Ivan Neto wrote:
> Se o sizeof do vetor [...] for menor que 6, tudo funciona blz [...] Mas
> se for maior ou igual a 6 da uma seg fault.

Da' segfault quando voce da' free? Anyway, a causa mais provavel, de
longe, e' que voces estao dando "free" ou acessando a memoria com um
ponteiro errado. O fato de que `as vezes funciona nao refresca nada; `as
vezes tem um espaco de memoria que foi alocado pelo OS para o programa
"sem voce pedir" e por isso nao da' segfault mesmo que voce o acesse
indevidamente. Eu chuto que a sua funcao em L.M. esta' baguncando o lugar
da pilha onde esta' o apontador "original" para os vetores.

> Outra duvida: se eu nao der free em alguma coisa que eu aloquei num 
> programa, quando esse programa termina os recursos por ele alocado sao 
> automaticamente devolvidos ao SO?

Sim; num sistema operacional de verdade, quando o programa termina, toda a
memoria alocada para ele volta para o SO; claso que existem produtos por
ai' que sao vendidos com o nome de "sistema operacional" que nao sao bem
assim... ;-)

Ate' +
Nelson