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

EyVoK 1 Messages postés jeudi 5 avril 2018Date d'inscription 5 avril 2018 Dernière intervention - 5 avril 2018 à 09:21 - Dernière réponse : cptpingu 3785 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 18 avril 2018 Dernière intervention
- 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

Répondre au sujet
cptpingu 3785 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 18 avril 2018 Dernière intervention - 5 avril 2018 à 11:20
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.