[C++] plantage incomprehansible
Fermé
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
-
5 janv. 2005 à 10:59
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 6 janv. 2005 à 01:13
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 6 janv. 2005 à 01:13
A voir également:
- [C++] plantage incomprehansible
- Plantage windows 10 - Guide
- Plantage pc ecran figé - Guide
- Plantage windows 10 au démarrage - Guide
- Plantage yahoo mail - Guide
- Plantage windows 11 - Guide
4 réponses
Utilisateur anonyme
5 janv. 2005 à 13:02
5 janv. 2005 à 13:02
Bonjour,
il n'y a guère d'éléments dans ton message qui permettent de découvrir la source de l'erreur.
Ne faudrait-il pas mieux débugger ton programme?
Comment es-tu sur que l'instruction avant le "return 0" est exécutée correctement? Pour le savoir, il faudrait récupérer la valeur de retour de la fonction fclose(), ce qui n'apparait pas dans les lignes de codes que tu proposes.
a+
il n'y a guère d'éléments dans ton message qui permettent de découvrir la source de l'erreur.
Ne faudrait-il pas mieux débugger ton programme?
Comment es-tu sur que l'instruction avant le "return 0" est exécutée correctement? Pour le savoir, il faudrait récupérer la valeur de retour de la fonction fclose(), ce qui n'apparait pas dans les lignes de codes que tu proposes.
a+
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
5 janv. 2005 à 14:18
5 janv. 2005 à 14:18
ik. J'ai trop simplifier...
je l'ai vérifier en ajoutant des printf, etc... et en utilisant le debugueur de DevCpp (qui d'ailleur est bien bugger lui) qui fonctionne jusque la, puis arriver sur "return 0" il plante : il ne veut plus avancer pas à pas, et même DevCpp plante (donc reboot du prog)
J'ai reussi (en partie) à résoudre ce problème, il vien d'un dépassement de tableau. Dans le programme j'utilise un vector déclarer à une taille N, et j'utilise la N+1 valeur.
Se qui est étonnant c'est qu'avec une taille de vector de 2e5 tout ce passe bien, et avec une taille 1e5 ça plante...
Autre fait étrange, malgré le dépassement le programme fait tout, sauf la fermeture. A priori, d'après ce que j'ai pu voir une fois avec le débugeur, il plante lors de la destruction de certaines variable.
Salutation !
Char Snipeur
je l'ai vérifier en ajoutant des printf, etc... et en utilisant le debugueur de DevCpp (qui d'ailleur est bien bugger lui) qui fonctionne jusque la, puis arriver sur "return 0" il plante : il ne veut plus avancer pas à pas, et même DevCpp plante (donc reboot du prog)
J'ai reussi (en partie) à résoudre ce problème, il vien d'un dépassement de tableau. Dans le programme j'utilise un vector déclarer à une taille N, et j'utilise la N+1 valeur.
Se qui est étonnant c'est qu'avec une taille de vector de 2e5 tout ce passe bien, et avec une taille 1e5 ça plante...
Autre fait étrange, malgré le dépassement le programme fait tout, sauf la fermeture. A priori, d'après ce que j'ai pu voir une fois avec le débugeur, il plante lors de la destruction de certaines variable.
Salutation !
Char Snipeur
grdscarabee
Messages postés
134
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
7 août 2005
74
5 janv. 2005 à 18:02
5 janv. 2005 à 18:02
Salut,
Personnellement je pense que tu as pourri ta mémoire....et le prgramme ne plante pas avant de rendre la main car il ne s'en est pas rendu compte mais Xp lui le sait ;)
Petit conseil, vérifies que tu n'as pas libérer deux fois le même pointeur ou alors que tu n'as pas modifié un morceau de mémoire qui ne t'appartenait pas...
GrdScarabe
Learn with the best, teach the others
Personnellement je pense que tu as pourri ta mémoire....et le prgramme ne plante pas avant de rendre la main car il ne s'en est pas rendu compte mais Xp lui le sait ;)
Petit conseil, vérifies que tu n'as pas libérer deux fois le même pointeur ou alors que tu n'as pas modifié un morceau de mémoire qui ne t'appartenait pas...
GrdScarabe
Learn with the best, teach the others
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
6 janv. 2005 à 01:13
6 janv. 2005 à 01:13
OK ! Merci grdscarabee. Tu doit avoir raison, ça me parait etre une bonne explication . Le problème venait d'un depassement de tableau (ici vector) Je n'utilise pas les pointeur justement pour eviter de faire ce genre d'oublie. c Gcc qui gere lui meme les création et destruction.
Salutation !
Char Snipeur
Salutation !
Char Snipeur