#include <string.h>
#include <stdio.h>
#include <stdlib.h>
struct tavSim {
char *nome;
char tipo;
char *valStr;
int valInt;
};
void inizializzaVoce(struct tavSim*);
void stampaVoce(struct tavSim*);
int main()
{
struct tavSim s = {0};
inizializzaVoce(&s);
stampaVoce(&s);
free(s.nome);
free(s.valStr);
system ("pause");
return 0;
}
void inizializzaVoce (struct tavSim *p)
{
char buffer[100];
printf("Inserire nome simbolo : ");
scanf("%s",buffer);
p->nome = (char*)malloc(sizeof(char)*(strlen(buffer)+1));
strcpy(p->nome,buffer);
printf("Inserire tipo: ");
scanf(" %c",&p->tipo);
switch (p->tipo)
{
case 's':
printf("Inserire valore : ");
scanf("%s",buffer);
p->valStr = (char*)malloc(sizeof(char)*(strlen(buffer)+1));
strcpy(p->valStr,buffer);
break;
case 'i':
printf("Inserire valore : ");
scanf(" %d",&p->valInt);
break;
default :
printf("Valore di tipo non corretto\n");
break;
}
}
void stampaVoce(struct tavSim *p)
{
switch (p->tipo)
{
case 's':
printf("%s",p->valStr);
break;
case 'i':
printf("%d",p->valInt);
break;
default :
printf("Valore di tipo non corretto\n");
break;
}
}