Quando fui monitor da disciplina que estuda C na faculdade,
uma das coisas em que os usuários mais erravam era no uso
do realloc.
Isso acontece por que na maioria das vezes o programador
esquece de "pegar" o retorno da função. O realloc tenta
realocar a quantidade de memória pedida na seqüência da já
alocada, se não consegue, ele aloca uma nova área e retorna
o ponteiro pra essa área, liberando a área previamente
alocada, e é aí que ocorre o erro.
[3] Comentário enviado por FelipeAbella em 25/11/2005 - 14:55h
Outra coisa é verificar se o ponteiro recebido é nulo, pois se não tiver memória para realocar a funcao devolve nulo, e se não me engano ela devolve nulo e não libera a memoria que pediu pra realocar... ai voce tem que ter um "backup" do ponteiro pra em caso de erro liberar a memoria, isso que se quiser um programa livre de erros, e que não deixe sujeira na memoria