#include <stdio.h>
#include <stdlib.h> /* malloc() */
int main() {
int *p = malloc(2*sizeof(int));
int i=0, aux;
if (!p) { // Verifica se a operacao de alocar memoria foi bem sucedida
printf ("** Erro: Memoria Insuficiente **");
exit(-1);
}
else {
printf ("-> Vetor dinamico criado com sucesso\n\n");
}
while(1)
{
scanf("%d", &aux);
p = realloc(p, (i+1)*sizeof(int));
p[i] = aux;
i++;
if(aux==0) break;
}
for (aux=i-2; aux>=0 ; aux--)
printf("%d\n", p[aux]);
free(p);
printf ("\n-> Area de memoria alocada foi liberada com sucesso\n");
return(0);
}