fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef struct{
  5. char nome[30];
  6. int idade;
  7. int altura;
  8. }Pessoa;
  9.  
  10. int main(void){
  11. int escolha=1,linhas=1,i=0;
  12. Pessoa *p = NULL;
  13.  
  14.  
  15. for(;;){
  16. puts("(0) para sair do programa (1) para inserir novo nome \n");
  17. scanf("%d",&escolha);
  18. switch(escolha){
  19. case 1:
  20. p = (Pessoa *) realloc(p,sizeof(Pessoa*)*linhas);
  21. if(!p){
  22. puts("nao foi possivel alocar memoria");
  23. exit(-1);
  24. }
  25.  
  26. puts("insira o nome da pessoa");
  27. scanf("%s", p[linhas].nome);
  28. puts("insira a idade da pessoa");
  29. scanf("%d", &p[linhas].idade);
  30. puts("insira a altura da pessoa");
  31. scanf("%d", &p[linhas].altura);
  32. linhas++;
  33. break;
  34. case 0:
  35.  
  36. for(i=1;i<linhas;i++)
  37. printf("Pessoa %d nome: %s\tidade: %d\taltura: %d \n", i,p[i].nome,p[i].idade,p[i].altura);
  38. free(p);
  39. exit(1);
  40. default:
  41. puts("Caractere invalido inserido!");
  42. }
  43. }
  44. return 0;
  45. }
Runtime error #stdin #stdout 0s 5364KB
stdin
1
Fulano
10
1.10
1
Ciclano
5
0.5
0
stdout
(0) para sair do programa (1) para inserir novo nome 

insira o nome da pessoa
insira a idade da pessoa
insira a altura da pessoa
(0) para sair do programa (1) para inserir novo nome 

Caractere invalido inserido!
(0) para sair do programa (1) para inserir novo nome 

insira o nome da pessoa
insira a idade da pessoa
insira a altura da pessoa
(0) para sair do programa (1) para inserir novo nome 

Caractere invalido inserido!
(0) para sair do programa (1) para inserir novo nome 

Pessoa 1 nome: Fulano	idade: 10	altura: 1 
Pessoa 2 nome: Ciclano	idade: 5	altura: 0