Oppure

Loading
02/11/10 19:15
ciao888
ho scritto questo programma in cui costruisco una lista di nomi con vicino le età, il programma purtroppo mi dà errore sulla riga dove è scritto:
persona.nome = p-> nome;

secondo voi dov'è l'errore?ecco il mio programma:

#include <cstdlib>
#include <iostream>
using namespace std;
 
struct persona
{ char nome[20];//creo una lista in cui compare ogni elemento con i relativi nome ed età
int eta;
persona* successiva;
};
 
typedef persona* lista;
 
lista creaLista (int n)
{
lista p, p0 = 0;
 
for (int i = 1; i <= n; i++)
{
p = new persona;
cin >> p->nome >> p->eta;
p->successiva = p0;
p0 = p;
}
return p0;
}
bool estTesta (lista& inizio, int& persona)//estraggo un elemento dalla testa della lista
{lista p = inizio;
if (p == 0) return false;
persona.nome = p->nome;
persona.eta = p->eta;
 
inizio = p->succ;
delete p;
returne true;
}
void insTesta (lista& inizio, int persona)//inserisco un altro elemento dalla testa della lista
{
lista p = new elem;
p->nome = persona.nome;
p->succ = inizio;
inizio = p;
}
 
int main()
{
const int numero_persone = 10;
creaLista(numero_persone);
estTesta (numero_persone);
insTesta (numero-persona);
return 0;
system ("pause");
}
Ultima modifica effettuata da ciao888 02/11/10 19:16
aaa
03/11/10 18:20
Il Totem
"persona", oltre ad essere ambiguo con la struct persona, è un parametro di tipo int, che evidentemente non dispone dei campi nome ed eta.
aaa
04/11/10 3:22
TheKaneB
estTesta (numero_persone);
insTesta (numero-persona);

ma da dove l'hai copiato (malamente) sto codice?

insTesta e estTesta hanno due parametri, tu ne usi uno solo... senza contare la sottrazione "numero - persona" che non ha senso...

tralascio anche il pietoso "returne true".... poi è bellissimo il System("pause";) messo DOPO il return della funzione main...

Continuo a sostenere la tesi che il miglior modo di imparare a programmare passa dai libri, non dal copia-incolla e nemmeno dall'applicazione selvaggia del Lemma di Borel-Cantelli
it.wikipedia.org/wiki/…

aaa