Paulo N. Junior Postado Abril 21, 2018 Denunciar Share Postado Abril 21, 2018 Queria entender porque meu codigo não funciona usando a função, toda vez que realoca ele perde informações. #include <stdio.h> #include <stdlib.h> int realocar(int *ponteiro,int tamanho){ tamanho +=1; ponteiro = (int *) realloc(ponteiro,tamanho * sizeof(int)); return tamanho; } int main(){ //vetor dinamico int tamanho = 1; int a,i; int *pnt; pnt = malloc(tamanho * sizeof(int)); scanf("%d",&a); while(a != 0) { for(i=tamanho-1;i<tamanho;i++){ //printf("tamanho: %d inteiro: %d\n",tamanho-1,i); pnt[i] = a; scanf("%d",&a); } tamanho = realocar(pnt,tamanho); /*tprintf("Pnt: %p Enderco: %p\n",pnt,&pnt); tamanho +=1; pnt =realloc(pnt,tamanho * sizeof(int));*/ } for(i=0;i<tamanho-1;i++){ printf("vetor[%d] = %d\n",i,pnt[i]); } free(pnt); pnt = NULL; return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo N. Junior Postado Abril 24, 2018 Autor Denunciar Share Postado Abril 24, 2018 Achei a resposta! #include <stdio.h> #include <stdlib.h> int realocar(int *ponteiro,int *tamanho){ *tamanho +=1; *ponteiro = (int *) realloc(*ponteiro,tamanho * sizeof(int)); return ponteiro; } int main(){ //vetor dinamico int tamanho = 1; int a,i; int *pnt; pnt = malloc(tamanho * sizeof(int)); scanf("%d",&a); while(a != 0) { for(i=tamanho-1;i<tamanho;i++){ //printf("tamanho: %d inteiro: %d\n",tamanho-1,i); pnt[i] = a; scanf("%d",&a); } pnt = realocar(pnt,&tamanho); /*tprintf("Pnt: %p Enderco: %p\n",pnt,&pnt); tamanho +=1; pnt =realloc(pnt,tamanho * sizeof(int));*/ } for(i=0;i<tamanho-1;i++){ printf("vetor[%d] = %d\n",i,pnt[i]); } free(pnt); pnt = NULL; return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Paulo N. Junior
Queria entender porque meu codigo não funciona usando a função, toda vez que realoca ele perde informações.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.