Problème C
Fermé
Syzko
Messages postés
11
Date d'inscription
lundi 13 janvier 2014
Statut
Membre
Dernière intervention
22 mai 2014
-
22 mai 2014 à 01:51
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 23 mai 2014 à 09:19
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 23 mai 2014 à 09:19
7 réponses
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié par [Dal] le 23/05/2014 à 09:20
Modifié par [Dal] le 23/05/2014 à 09:20
Salut Syzko,
Suit les conseils avisés de fiddy.
Puisque tu utilises Visual Studio, tu devrais aussi te servir de son debogueur, qui va t'aider à identifier la partie de ton code responsable du crash.
https://loulou.developpez.com/tutoriels/cpp/debogueur-visual-studio/
https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2015/debugger/debugging-in-visual-studio?view=vs-2015&redirectedfrom=MSDN
Dal
Suit les conseils avisés de fiddy.
Puisque tu utilises Visual Studio, tu devrais aussi te servir de son debogueur, qui va t'aider à identifier la partie de ton code responsable du crash.
https://loulou.developpez.com/tutoriels/cpp/debogueur-visual-studio/
https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2015/debugger/debugging-in-visual-studio?view=vs-2015&redirectedfrom=MSDN
Dal
Syzko
Messages postés
11
Date d'inscription
lundi 13 janvier 2014
Statut
Membre
Dernière intervention
22 mai 2014
22 mai 2014 à 01:53
22 mai 2014 à 01:53
Le problème se trouve a la recherche perso, lorsque j'ajoute un deuxième personnage ,le programme plante et cela est très frustrant.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
22 mai 2014 à 09:53
22 mai 2014 à 09:53
Bonjour,
Je n'ai pas tout lu car le programme est illisible.
Mais quelques remarques :
Personnage* pPersoRech, *pDebPersonnage, *pPersoNouv = NULL;
Cela n'initialise ni pPersoRech à NULL, ni pDebPersonnage.
Il faut l'écrire explicitement.
fflush(stdin);
Comportement indéterminé. A enlever. Si tu veux flusher le buffer clavier, il faut faire soi-même la fonction.
CLEAR;
Ca correspond à quoi ?
gets_s()
Tu l'as codé toi-même ? Peux-tu montrer cette fonction ?
Merci de reposter ce code en prenant compte des erreurs et en utilisant la balise "code" (à droite du bouton "souligné" (liste déroulante, choisis "C")).
Cdlt,
Je n'ai pas tout lu car le programme est illisible.
Mais quelques remarques :
Personnage* pPersoRech, *pDebPersonnage, *pPersoNouv = NULL;
Cela n'initialise ni pPersoRech à NULL, ni pDebPersonnage.
Il faut l'écrire explicitement.
fflush(stdin);
Comportement indéterminé. A enlever. Si tu veux flusher le buffer clavier, il faut faire soi-même la fonction.
CLEAR;
Ca correspond à quoi ?
gets_s()
Tu l'as codé toi-même ? Peux-tu montrer cette fonction ?
Merci de reposter ce code en prenant compte des erreurs et en utilisant la balise "code" (à droite du bouton "souligné" (liste déroulante, choisis "C")).
Cdlt,
Merci pour le fflush , le CLEAR est un #define système("cls") et je ne veux pas initialiser les 2 pointeurs a null mais qu un seul . Évidemment ce n est U une partie de code. Le gets_s permet de récupérer la chaine de caractère. Oui j ai écris le code. Mais le problème est dans la recherche du perso ... Quand j ajoute 2personnages il crache
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
Modifié par fiddy le 22/05/2014 à 16:47
Modifié par fiddy le 22/05/2014 à 16:47
Le problème en C est que l'erreur ne vient pas forcément de là où on pense... C'est pourquoi c'est mieux d'avoir d'être complet.
A titre d'exemple :
while ((strcmp(persoLu, "ZZZ") != 0) && (codeErreur =PAS_ERREUR)){
Tu as mis "=" au lieu de "==". Le code du while ne sera donc jamais respecté.
Peux-tu donc poster le code du gets_s() ?
Pourquoi ne pas avoir utiliser fgets() ?
Et je remets : ton code est illisible. Merci donc de le reposter en utilisant les balises "code".
Cdlt,
Google is your friend
A titre d'exemple :
while ((strcmp(persoLu, "ZZZ") != 0) && (codeErreur =PAS_ERREUR)){
Tu as mis "=" au lieu de "==". Le code du while ne sera donc jamais respecté.
Peux-tu donc poster le code du gets_s() ?
Pourquoi ne pas avoir utiliser fgets() ?
Et je remets : ton code est illisible. Merci donc de le reposter en utilisant les balises "code".
Cdlt,
Google is your friend
Syzko
Messages postés
11
Date d'inscription
lundi 13 janvier 2014
Statut
Membre
Dernière intervention
22 mai 2014
22 mai 2014 à 17:58
22 mai 2014 à 17:58
Je n'avais pas remarqué le '==' merci de m'avoir fait remarqué , je n'utilise pas le fgets_s car de 1) Je l'utilise pour récupérer des informations venant d'un fichier.et de 2 parce que j'obtiens une chaîne de caractère. Personnellement, j'ai appris comme ça. Mon code est très bien écrit sur Visual Studio mais c'est quand je le copie-colle désolé.
Si vous voyez éventuellement d'autre erreur que je ne vois pas...
Si vous voyez éventuellement d'autre erreur que je ne vois pas...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
Modifié par fiddy le 22/05/2014 à 21:24
Modifié par fiddy le 22/05/2014 à 21:24
Pour la 3ème fois, merci de recopier le code en utilisant la balise "code".
Sinon c'est illisible...
Tu écris :
<"code">Ici tu mets ton code corrigé<"/code"> (sans les guillemets).
Google is your friend
Sinon c'est illisible...
Tu écris :
<"code">Ici tu mets ton code corrigé<"/code"> (sans les guillemets).
Google is your friend