Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

gunao36

Alocar memoria

Mensagens Recomendadas

gunao36

Não sei como isto está a dar erro, alguém pode-me ajudar sff.

str1= malloc(sizeof(char));
           while((ch=fgetc(fp))!=EOF ){
               realloc(str1,(j+1)*sizeof(char));
               str1[j]=ch;
               j++;
           }

Editado por pmg
Falta LP no GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

o realloc devolve o endereco do novo bloco de memoria ... mas tu nao usas esse valor para nada; ficando apensa com o endereco antigo. O endereco antigo nao tem espaco para "mais um" caracter.

A maneira correcta de usar o realloc é atribuir o valor de retorno a uma variavel temporaria; testar de deu NULL e caso nao tenha dado, actualizar a variavel de trabalho com o novo valor

tmp = realloc(old, newsize);
if (tmp == NULL) {
   /* tratar do erro */
} else {
   old = tmp;
}


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gunao36

o realloc devolve o endereco do novo bloco de memoria ... mas tu nao usas esse valor para nada; ficando apensa com o endereco antigo. O endereco antigo nao tem espaco para "mais um" caracter.

A maneira correcta de usar o realloc é atribuir o valor de retorno a uma variavel temporaria; testar de deu NULL e caso nao tenha dado, actualizar a variavel de trabalho com o novo valor

tmp = realloc(old, newsize);
if (tmp == NULL) {
/* tratar do erro */
} else {
old = tmp;
}

desculpa mas nao percebi como estás a fazer. será q podes fazer um exemplo no meu codigo sff.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Ignora o meu codigo e interpreta o que eu escrevi.

A funcao realloc devolve um valor, ela nao altera nenhum dos argumentos!


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.