fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void) {
  5. int i;
  6. printf("\nDigite a quantidade de numeros que serao digitados: ");
  7. scanf ("%d", &i);
  8. int *p = malloc(i * sizeof(int));
  9. if (p == NULL) {
  10. printf ("\nERRO.MEMORIA INSUFICIENTE");
  11. exit(1);
  12. }
  13. for (int k = 0; k < i; k++) {
  14. printf ("\nDigite o % do valor do vetor: ", k + 1);
  15. scanf ("%d", &p[k]);
  16. }
  17. printf("\n\n========== VETOR PREENCHIDO ==========\n");
  18. for (int k = 0; k < i; k++) printf ("%d\t", p[k]);
  19. printf("\n\nSeu vetor possui %d elementos.", i);
  20. printf("\nDigite um valor positivo para aumentar ao vetor.");
  21. printf("\nDigite um valor negativo para diminuir do vetor.\n\n");
  22. int n;
  23. scanf("%d", &n);
  24. if (!(i + n)) {
  25. printf("\nSeu vetor possui 0 elementos.\n\n");
  26. exit(1);
  27. } else if ((i + n) < 0) {
  28. printf("\nSeu vetor possui quantidade negativa de elemento.\n\nIMPOSSIVEL ALOCAR MEMORIA.\n\n");
  29. exit(1);
  30. }
  31. p = realloc(p, (i + n) * sizeof(int));
  32. if (p==NULL) {
  33. printf("\nERRO DE RE-ALOCACAO.MEMORIA INSUFICIENTE");
  34. exit(1);
  35. }
  36. for (int k = i; k < (n + i); k++) {
  37. printf("\nDigite o % do valor do vetor: ",k+1);
  38. scanf("%d", &p[k]);
  39. }
  40. printf ("\n\n========== VETOR PREENCHIDO REALOCADO ==========\n");
  41. for (int k = 0; k < (n+i); k++) {
  42. printf("%d\t", p[k]);
  43. }
  44. free(p); //na prática não é necessário aqui porque o programa vai encerrar, mas pra fins de aprendizado ok
  45. }
  46.  
  47. //https://pt.stackoverflow.com/q/215422/101
Success #stdin #stdout 0s 4476KB
stdin
3
1
2
3
2
4
5

stdout
Digite a quantidade de numeros que serao digitados: 
Digite o  1o valor do vetor: 
Digite o  2o valor do vetor: 
Digite o  3o valor do vetor: 

========== VETOR PREENCHIDO ==========
1	2	3	

Seu vetor possui 3 elementos.
Digite um valor positivo para aumentar ao vetor.
Digite um valor negativo para diminuir do vetor.


Digite o  4o valor do vetor: 
Digite o  5o valor do vetor: 

========== VETOR PREENCHIDO REALOCADO ==========
1	2	3	4	5