Abdujaparov
20-07-2009, 13:57
Ciao a tutti,
vorrei creare un array che si allarga dinamicamente in modo da avere un vettore con tutto ciò che l'utente ha inserito da stdin.
Ho definito queste due strutture:
struct Persona{
char nome[30];
char cognome[30];
};
struct vettorePersone{
int size;
struct Persona* elementi;
};
Successivamente ho provato ad insere le varie strutture Persona in elementi in questo modo:
struct vettorePersone vett;
vett.size=0;
do{
struct Persona pers;
printf("Inserisci nome e cognome separati da spazio...\n");
scanf("%s %s", pers.nome, pers.cognome);
printf("Nome: %s\nCognome: %s\n", pers.nome, pers.cognome);
vett.elementi = (struct Persona *)malloc(sizeof(struct Persona)*(++vett.size));
*(vett.elementi+vett.size)=pers;
vett.size++;
printf("Continuare? s/n \n");
scanf("%s", risposta);
}while(strcmp(risposta,"n")!=0);
In questo modo però ottengo un segmentation fault a runtime. Come posso risolvere? Dove e cosa sbaglio?
Grazie, ciao ciao.
vorrei creare un array che si allarga dinamicamente in modo da avere un vettore con tutto ciò che l'utente ha inserito da stdin.
Ho definito queste due strutture:
struct Persona{
char nome[30];
char cognome[30];
};
struct vettorePersone{
int size;
struct Persona* elementi;
};
Successivamente ho provato ad insere le varie strutture Persona in elementi in questo modo:
struct vettorePersone vett;
vett.size=0;
do{
struct Persona pers;
printf("Inserisci nome e cognome separati da spazio...\n");
scanf("%s %s", pers.nome, pers.cognome);
printf("Nome: %s\nCognome: %s\n", pers.nome, pers.cognome);
vett.elementi = (struct Persona *)malloc(sizeof(struct Persona)*(++vett.size));
*(vett.elementi+vett.size)=pers;
vett.size++;
printf("Continuare? s/n \n");
scanf("%s", risposta);
}while(strcmp(risposta,"n")!=0);
In questo modo però ottengo un segmentation fault a runtime. Come posso risolvere? Dove e cosa sbaglio?
Grazie, ciao ciao.