Usando o realloc

Publicado por Perfil removido em 29/11/2004

[ Hits: 21.435 ]

 


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

Exibindo vídeos no xmms (com mplayer instalado)

Iniciando no modo gráfico no Slackware

Como criar um pacote.deb com o executável do Lazarus

Instalando Spotify no Linux Mint 17

Apresentando o Tor

Leitura recomendada

Livro "Advanced Linux Programming"

Usando o pré-processador - básico

Sobrecarga de Operadores em C++

Migrando aplicativos C++ do Windows para Linux

Passar variáveis char para inteiro

  

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