Il programma in c++ crasha durante lo svolgimento?
Sto cercando di creare un simulatore del gioco degli scacchi in c++ utilizzando la libreria grafica graphics.h, molto elementare ma semplice da utilizzare.
Il programma nel mezzo dello svolgimento smette di funzionare. Il problema avviene in diversi casi, sia durante la funzione che sposta i pezzi, sia durante la funzione che evidenzia le caselle accessibili.
Il programma si struttura su un while infinito che ad ogni ciclo controlla che il tasto sinistro sia stato premuto, in tal caso vengono calcolate le coordinate del mouse e della casella della griglia corrispondente che col mouse si vuole selezionare. Dopodiché si indaga sull'accessibilità di quella casella secondo le regole del gioco e infine si stampa il pezzo in quella casella.
Non vengono utilizzate texture ma funzioni che ho creato per disegnare ciascun pezzo stilizzato. Ho già provato a mettere Sleep al while infinito e ad alcuni for che gestiscono le matrici che contengono le coordinate di tutti i pezzi-
5 risposte
- 2 mesi fa
Alla fine ho risolto. Non c'erano puntatori puntanti a NULL ma semplicemente la funzione GetAsyncKeyState(VK_LBUTTON) dopo alcuni secondi di utilizzo dell' applicazione ritornava senza motivo sempre true e quindi il programma andava in loop infinito e crashava. Ho risolto affiancando alla funzione, in caso di sola attesa dell'input un getch().
- SaverioLv 52 mesi fa
Ciao, è buona consuetudine evitare i cicli infiniti non gestiti.
Hai pensato di utilizzare un handler invece di un ciclo infinito ?
- nicoladc89Lv 72 mesi fa
E come diamine faremmo a saperlo? Comunque concordo con Nick la maggior parte delle volte i problemi sono puntatori a Null e quel farabutto di segmentation fault.
- Che ne pensi delle risposte? Puoi accedere per votare la risposta.
- NickLv 72 mesi fa
inifite cause possibili, ma le prime di solito sono Null pointer e memoria esaurita...