Je suis un programmeur intermédiaire, écrivant un programme qui est probablement beaucoup trop compliqué pour moi. Les programmes ont pour but de construire certains tableaux 2-D, et ont quelques objets de classe différents qui communiquent entre eux d'une manière pas si simple. Afin de déboguer, j'ai ajouté une ligne de code à la sortie où j'étais dans le programme (cout < < "ici";). Le programme fonctionne maintenant, mais si je supprime l'instruction cout, le résultat global de l'ensemble du programme échoue; le programme ne suit pas la procédure prévue pour créer lesdites matrices 2-d. Donc, ma question est: Qu'est-ce qui pourrait éventuellement se produire? ou plutôt, comment inclurait-il une déclaration cout "corrigeant" (ou ayant une sorte d'impact sur) l'autre code environnant? Il ne semble pas qu'une déclaration cout aurait un impact sur Buffer overflow, mais n'hésitez pas à me renseigner si c'est le cas.Pourquoi supprimer 'cout' de ma fonction change son résultat?
Répondre
Votre programme utilise des constructions définies pour provoquer un "comportement indéfini". Plus concrètement, le programme lit probablement la mémoire non initialisée de la pile d'exécution ou écrit au-delà des limites de quelque chose stocké sur la pile. L'appel de fonctions, comme imprimer quelque chose à cout, modifie la pile et peut entraîner un comportement différent du programme si vous avez ce genre de bugs.
+1 pour tout après "plus concrètement". J'ai eu le même problème, et c'est vraiment utile pour résoudre ce qui semble être un bug fou pour les novices comme moi. – OJFord
- 1. Pourquoi le résultat -30 de cette fonction?
- 2. Pourquoi ma classe de cellules de table spécifique ne change-t-elle pas son alignement vertical?
- 3. Pourquoi ma sortie change-t-elle?
- 4. Pourquoi ma surcharge de fonction n'est-elle pas préférée à celle de ma fonction?
- 5. Pourquoi ma fonction dysfonctionnement
- 6. La sortie du cout change selon la méthode de typage
- 7. Pourquoi ma fonction ne produit-elle pas de sortie
- 8. Pourquoi ma requête ne renvoie aucun résultat?
- 9. Pourquoi C# change ma structure de couleur en ValueType?
- 10. Pourquoi ma fonction abandonne tôt?
- 11. Pourquoi ma fonction retourne NULL?
- 12. C++ cout une fonction mathématique
- 13. L'appel de fonction n'affiche pas cout
- 14. Java: Pourquoi changer l'adresse de tableau dans une fonction, ne change pas son adresse quand nous revenons de cette fonction?
- 15. Le résultat ServiceStack.Text.XmlSerializer.DeserializeFromString change lorsque je change l'ordre de xmlnode. Pourquoi?
- 16. Pourquoi ma fonction est-elle en boucle sans fin
- 17. Pourquoi ma fonction printList ne fonctionne-t-elle pas?
- 18. Pourquoi ma méthode jquery change() n'est pas exécutée dans jira?
- 19. ne peut pas passer l'opération '&' résultat à cout
- 20. Pourquoi ma fonction commence-t-elle à renvoyer nan?
- 21. Pourquoi ma fonction de recherche CakePHP ne renvoie-t-elle aucun résultat?
- 22. Pourquoi ma sortie va-t-elle à cout plutôt que de fichier?
- 23. Javascript IIFE change le résultat
- 24. Fonction Pointers vs appel cout directement
- 25. Pourquoi ma fonction virtuelle n'est-elle pas appelée?
- 26. présence de cout changer le résultat du programme
- 27. Je veux que ma fonction soit déclenchée quand l'itinéraire change
- 28. Pourquoi ma fonction n'ajoute-t-elle pas de données correctes
- 29. UIButton personnalisé ne change pas son image
- 30. Python: pourquoi ma liste change-t-elle lorsque je ne la change pas?
Comportement indéfini. – chris
Vous savez, c'est l'un de ces moments où un SSCCE serait incroyablement utile. Considérant que c'est probablement UB ou quelque chose de minuscule. – Rapptz
Pourriez-vous fournir un exemple de code afin que nous puissions voir quel est le problème? – Longball27