rendered paste body#include<stdio.h>
#include<stdlib.h>
#include<string.h>
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;
}