fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef struct {
  5. char *name;
  6. char *phone;
  7. char *city;
  8. char *state;
  9. } ficha_t;
  10.  
  11. void aloca(char **ptr, int tamanho) {
  12. *ptr = (char *)realloc(*ptr, tamanho + 1);
  13. if(ptr == NULL){
  14. puts("** Memória Insuficiente **");
  15. exit(0);
  16. }
  17. }
  18.  
  19. char *preenche() {
  20. char *dados = NULL;
  21. int i = 0;
  22. do {
  23. aloca(&dados, i);
  24. dados[i++] = getchar();
  25. } while (dados[i - 1] != '\n');
  26. dados[i - 1] = '\0';
  27. return dados;
  28. }
  29.  
  30. int main(int argc, const char *argv[]) {
  31. ficha_t ficha;
  32. ficha.name = preenche();
  33. printf("%s", ficha.name);
  34. }
  35.  
  36. //https://pt.stackoverflow.com/q/52555/101
Success #stdin #stdout 0s 4504KB
stdin
abc
stdout
abc