PDA

Visualizza la versione completa : [C++]ciclo for non equivalente a while non funziona


wiligelm
01-06-2003, 22:35
Il seguente codice serve per eliminare tutti gli elementi di una lista.
Dato la dichiarazione


struct Record{
int i;
Record* l;
}

Record* l;

Il seguente codice funziona:


Record* p=l;
while (l!=0)
{
l=l->l;
delete p;
p=l;
}

ho provato a trasformare il codice sopra in un ciclo for:


for (Record* p=l; l!=0; p=l)
{
l=l->l;
delete p;
}

Mi sembra che i due frammenti di codice siano equivalenti, ma in realtà, quando faccio girare il secondo, mi esce un box di messaggio di win che dice che il programma che sto lanciando ha eseguito un'operazione non valida e sarà terminato.

Perché il ciclo for è diverso dal ciclo while e perché non funziona?

virusbye
01-06-2003, 23:56
usi dev c++?

wiligelm
02-06-2003, 15:27
per ora sto usando il compilatore della borland (linea di comando) bcc32, ma adesso sto cercando di scaricare il dev c++, è fatto da più componenti o devo solo scaricare un solo file di installazoine?

wiligelm
02-06-2003, 16:06
il seguente ciclo for invece funziona senza problemi

for(Record* p=l; p!=0; p=p->l)
{
cout << p->i << endl;
}

Loading