Salve,
questa getchar si comporta in modo molto molto molto anomalo. In pratica è non bloccante anche se io non ho fatto nulla per far si che lo fosse..
Ho provato pure a mettere fflush(stdin) all'inizio ma niente da fare



codice:
/* Freccia sinsitra */
#define SINISTRA 68 

/* Freccia destra */
#define DESTRA 67

/* Tasto per uscire dal gioco*/
#define TASTO_USCITA 113

//fflush(stdin);
c=getchar();
//if (c==0) c=getchar();

switch(c)
			{	
				 

				case TASTO_USCITA:
					/*scrivi sul buffer (accedendo tramite l'opportuno mutex e verificando se vi
					siano posizioni disponibili per la scrittura)relativo alla comunicazione con
					controllo i dati che indicano che il giocatore ha scelto di uscire dal
					gioco*/
					pos_niente.tipo = USCITA;
				

					 
					in_esecuzione = false;/*esci dal ciclo esterno e quindi fai finire il thread*/
									
					break;

				/*se si preme la freccia sinistra la nave si sposta a sinistra*/	
				case SINISTRA:
					
					/*se la nave è in una posizione dello schermo dove può stare*/
					if(pos_nave.x > DISTANZA_DAI_LATI)
						pos_nave.x -= SPOSTAMENTO_NAVE; /*sposta a sinistra la nave*/
						
						scrivi_su_buffer(pos_nave); 

					break;
				/*se si preme la freccia destra la nave si sposta a destra*/
				case DESTRA:
					/*se la nave è in una posizione dello schermo dove può stare*/
					if(pos_nave.x < MAXX-DISTANZA_DAI_LATI)
						pos_nave.x += SPOSTAMENTO_NAVE;/*sposta a destra la nave*/
						
					scrivi_su_buffer(pos_nave); 

					break;
				//default:
				//sleep(1);
				//pos_nave.x -= SPOSTAMENTO_NAVE;
				 
			}
Qualcuno ha idea da cosa possa dipendere?