Ciao a tutti,
sto lavorando in c con una lista
typedef struct person
{
char *name;
char *surname;
.......
struct peson *next;
} person;
la quale voglio riempire con i dati di ogni persona. Il mio problema è che non riesco ad allocare una spazio di memoria differente per i dati di ogni persona, e quindi ogni volta mi sovrascrivo i dati precedentemente salvati.
Il codice che uso per salvare i dati di ogni persona è il seguente:
person *first = NULL, *last;
for(per ogni persona)
{
char* name;
char* surname;
//acquisisco in name e surname i dati della nuova persona
//.................
newperson->name = name;
newperson->surname = surname;
if(first == NULL)
{
first = newperson;
}
else
{
last->next = newperson;
}
last = newperson;
}
IMPORTANTE: faccio un ciclo per acquisire name e surname e quindi due puntatori a ogni ciclo sono sovrascritti
quello che non riesco a fare è creare una zona differente di memoria ad ogni ciclo e passare alla mia lista
l'indirizzo di tale locazione.
Spero di essere stato abbastanza chiare.
Grazie a chi risponderà in anticipo.