La soluzione da te proposta (come dici tu: non inventata da te) è errata, e può causare danni non indifferenti se ulteriormente divulgata. Ti consiglio di segnalare l'errore a chi te l'ha proposta.
okay...allora...ti rigrazio...non pensavo potesse creare danni..ma a sto punto...se invece io inizializzassi una variabile e andassi a inserire lì il return...tipo:
codice:
int main ()
{
char risp, x;
do{
printf ("vuoi uscire dal programma? Y/N\n");
scanf ("%c%c",&risp, &x);
}while (risp != 'y');
}
così non dovrebbe andare a sovrescrivere niente...Giusto?