Usando o realloc

Publicado por Perfil removido em 29/11/2004

[ Hits: 21.405 ]

 


Usando o realloc



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.

char *pointer = (char *) malloc(10 * sizeof(char));
realloc(pointer, 20); /* errado */
pointer = realloc(pointer, 20); /* certo */

Fazendo isso as chances de ter erro no uso do realloc são quase zero.

Outras dicas deste autor

Descubra se um pacote de software existe nos repositórios de sua distribuição

Salvando sessões no Firefox

Permissão para usuário desligar o sistema sem compremeter a segurança

TkNotePad - Editor de textos semelhante ao bloco de notas

Comprimindo seu DVD no Linux com o "dvd95"

Leitura recomendada

Interface gráfica com C

Usando o pré-processador - básico

C++ vs Java

Como reiniciar o USB sem tirar o cabo

Migrando aplicativos C++ do Windows para Linux

  

Comentários
[1] Comentário enviado por vodooo em 29/11/2004 - 07:41h

Dica legal!!!

Abraços

[2] Comentário enviado por jllucca em 11/04/2005 - 18:38h

Dica legal... Eu quando testei aqui não reparei isso!

[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

[4] Comentário enviado por dgpinheiro em 26/10/2006 - 20:03h

Concordo com o Felipe, é um erro grave a não verificação do ponteiro nulo, algumas vezes pode detonar com o sistema operacinal.

Valeu!!!
dgpinheiro



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts