Plantage de Code:Blocks inexpliqué

Résolu
EyVoK Messages postés 1 Date d'inscription jeudi 5 avril 2018 Statut Membre Dernière intervention 5 avril 2018 - 5 avril 2018 à 09:21
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 5 avril 2018 à 11:20
Bonjour,
c'est ma première question sur un forum donc je m'excuse d'avance si j'oublie des éléments !
Je fais un Monopoly en c++ et mon problème est que mon .exe plante sans raison. Le code compile, je lance donc l’exécution jusqu'à l'appel de ma fonction 'getCasse' qui marchait la dernière fois.

joueur[i].lancerDee();
indice = joueur[i].getCasse();



void Joueur::lancerDee(){

dee = (rand() % 11)+2;
cout << "Vous avez fait " << dee <<endl;
casse=casse+dee;
if (*casse>39) {
int temp;
argent = argent + 20000;
temp = *casse - 39;
  • casse = 0 + temp;}cout << "Vous êtes à la case " << casse <<endl;cout << endl;}


J'ai lu sur quelques topic qu'il s'agirait d'un problème de mémoire, mais rien ne correspondait précisément à mon problème, merci d'avance pour vos réponses.

1 réponse

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
5 avril 2018 à 11:20
Bonjour.

As-tu passé ton code dans un debugger pour voir où était le problème exactement ?

Tu fournis peu de code, mais ce que tu fournis me paraît déjà suspicieux. Je vois du "*casse", ce qui me fait penser que "casse" est un pointeur. Donc faire casse = casse + dee risque de mal se passer (*casse = *casse + dee peut être ? Ou bien veux-tu réellement faire de l'arithmétique de pointeur là-dessus ?). Si tu bouges le pointeur, et que ton "getCasse" fait un "return *casse", alors tu vas essayer d'accéder à une adresse qui n'est pas celle attendue, et ça risque fort de planter :p.

Petit conseil, un peu hors-sujet:
- Code en anglais, au lieu de mettre du franglais ou du français avec des fautes d'orthographe (on écrit "dé" et non "dee")
- Évite les using namespace, c'est super crade, voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace/
0
Rejoignez-nous