Ciao a tutti la mia domanda è come da topic : come si inserisce un input da tastiera in char*nome.
Nel seguente codice ho provato una soluzione ma mi da errore di segmentazione...
Grazie.
#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;
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->nome = (char*)malloc(sizeof(char)*(strlen(buffer)+1));
strcpy(p->valStr,buffer);
break;
case 'i':
printf("Inserire valore : ");
scanf("%d",p->valInt);
default :
printf("Valore di tipo non corretto");
break;
}
}
void stampaVoce(struct tavSim *p) {
switch (p->tipo) {
case 's':
printf("%s",p->valStr);
break;
case 'i':
printf("%d",p->valInt);
default :
printf("Valore di tipo non corretto");
break;
}
}