Plantage de Code:Blocks inexpliqué [Résolu]

Messages postés
1
Date d'inscription
jeudi 5 avril 2018
Statut
Membre
Dernière intervention
5 avril 2018
- - Dernière réponse : cptpingu
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
- 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.
Afficher la suite 

1 réponse

Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
0
Merci
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/
Commenter la réponse de cptpingu