#include #include #include typedef struct user{ int user; char *name; int id; }t_user; typedef struct tot{ t_user *users; int sum; }t_tot; char* lerString(void); int main(void){ int opcao; t_tot estrutura={NULL, 0}; do{ if(estrutura.users==NULL) estrutura.users=(t_user*) malloc(sizeof(estrutura.users));else estrutura.users=(t_user*) realloc(estrutura.users, sizeof(t_tot)*estrutura.sum+1); estrutura.users[estrutura.sum].name=lerString(); printf("Introduza o id "); scanf("%d", &(estrutura.users[estrutura.sum].id)); estrutura.sum++; printf("\nTenho [%d] users inseridos\n", estrutura.sum); printf("\nO nome da posicao [%d], e : [%s]\n", estrutura.sum-1, estrutura.users[estrutura.sum-1].name); printf("0 para sair:"); scanf("%d", &opcao); }while(opcao!=0); return 0; } char* lerString(void){ char nome[50], *st; printf("Introduza o nome:"); scanf("%s", nome); st=(char*) malloc(sizeof(char)*strlen(nome)+1); if(st!=NULL) { strcpy(st, nome); printf("st=%s\n", st); printf("nome=%s\n", nome); }else{ printf("FAILURE MEM\n"); st=nome;} return st; }