Ma se tu facessi una cosa del genere:

codice:
firts = app;

do{
printf("\n\t %d",app->info);
app=app->p;
}while(app!=first);
??
Potrebbe andare?