PDA

View Full Version : [C++] problema ricerca in una lista


lucio87
04-02-2007, 08:18
ho un problema con l'ultima parte di questo programmimo che dovrebbe ricevere dei dati dall'utente, scriverli su file che dovranno poi essere aperti e scansionati per ricercare le informazioni.

posto la parte di codice interessata

void ricerca_artista()
{
char nome[30];
artista *p;
disco *s;


//carica_cantante();
//carica_album();
carica_gruppo();

system("pause");

system("cls");
cout<<"Inserire il nome dell'artista: ";
cin.getline(nome,30);
if(head==NULL)
cout << "Head nullo" << endl;
p=head;

while (p!=(artista*)NULL)
{
if(inizio==NULL)
cout<<"Inizio nullo" <<endl;
s=inizio;
while(s!=(disco*)NULL)
{
if(p->nome==nome && p->codice_artista==s->codice_autore)
{
cout<< s->titolo;
}
s=s->next;
}
p=p->next;
}
return;
}

ho fatto alcune prove e a quanto sembra non riesco mai a farlo entrare nel ciclo while(s!=(disco*)NULL)

qualcuno riesce a darmi una mano?
grazie

TheKaneB
05-02-2007, 01:39
Ti spunta la scritta "Inizio nullo" ?
se si vuol dire che la variabile (globale ?!) "inizio" non è stata settata, quindi non entra nel ciclo perchè s=inizio rende NULL anche s, quindi s!=NULL non si può verificare e il ciclo non viene eseguito.

Se spunta la scritta "Head nullo" ma non ti spunta la scritta "Inizio nullo" allora si è verificato un problema simile ma questa volta riguarda la variabile head e di riflesso anche la variabile p, visto che p=head

in entrambi i casi il problema risiede da qualche altra parte del codice, perchè questa funzione, almeno a prima vista, sembra non contenere errori... un consiglio: controlla bene la funzione carica_gruppo() e anche la funzione che chiama ricerca_artista()