IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

programme se plante


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 183
    Par défaut programme se plante
    Bonjour;
    J'ai fais une liste linéaire chaînée de véhicules ; puis je dois écrire un code pour pouvoir supprimer un véhicule bien déterminé ; sauf que je rencontre DEUX problèmes :
    1/ Si ma liste contient UN seul véhicule lorsque je clique sur supprimer la console se plante
    2/Si ma liste contient plusieurs véhicules , lorsque je veux supprimer le dernier véhicule que j'ai saisi dans la liste le premier se supprime aussi; ci dessous mon code merci de vouloir bien m'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    case 2:
    cout << "nVeuillez saisir l'identifiant du vehicule a supprimer:n";
    cin >> idt;
     
     
    if (l->GetIdentifiant() == idt)
        l = l->lien;		// l c'est ma liste
    q = l;
    if (q == NULL)
        cout << "liste vide";
     
    else
        while ((q->lien != NULL) & (q->GetIdentifiant() != idt)) {
    	p = q;
    	q = q->lien;
        }
     
    if (nombre_vehi == 1)
        l->lien = NULL;
    else
        p->lien = q->lien;
     
    _getch();
    break;

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Par défaut
    salut
    Quand sa plante sa dit quoi ?

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 131
    Billets dans le blog
    150
    Par défaut
    Bonjour,

    Lorsque cela plante, je conseille l'utilisation du débogueur (souvent intégrer dans l'IDE)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 183
    Par défaut
    Bonjour,
    Bah c'est la console qui se plante donc ca dis rien ca bloque et pour continuer je dois fermer visual studio et reouvrir

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 131
    Billets dans le blog
    150
    Par défaut
    Euh ...

    Vous êtes sur qu'il ne suffit pas d'appuyer sur le bouton stop ? (un carré bleu)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Par défaut
    Citation Envoyé par nourhene4 Voir le message
    Bonjour,
    Bah c'est la console qui se plante donc ca dis rien ca bloque et pour continuer je dois fermer visual studio et reouvrir
    Boucle sans fin?

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Par défaut
    Salut,

    Je pense que pour qu'on puisse te répondre, il faut que tu prennes en compte le fait... qu'on ne peut absolument pas savoir ce que tu as en tête. Du coup, lorsque que tu donnes un bout de code, (ce qui est nécessaire) assure toi qu'il soit le plus complet possible.

    Ici, tu fournis juste un "case".
    On ne peut pas savoir si tu en as 65 autre avant ou après et l'erreur pourrait se trouver en amont tout comme en aval de ton code. Il y a même dedans une floppée de variables dont on ne sait rien et dont le nom n'est pas explicite.
    Même si dans ton code tu utilises des noms de variable courts (ce que je ne te conseille pas vu le risque de s'y perdre après avec le nombre croissant de variables), renomme les de manière explicite dans ton post. Par exemple:
    "pointeur_sur_ma_liste" plutot que "l", ça semble exagéré, mais au moins c'est clair pour le lecteur.
    Ou au moins, ajoute des commentaires explicites.

    Maintenant, j'essai de comprendre ton code et avant de pouvoir chercher une erreur possible, une chose m'interpelle: je n'y comprend rien. Je m'explique:

    if (l->GetIdentifiant() == idt)
    l = l->lien; // l c'est ma liste
    si l est un pointeur sur la liste, je m'attends à ce que "l->GetIdentifiant()" renvoie l'identifiant de la liste. Donc si je demande un identifiant de véhicule à l'utilisateur, pas étonnant que ça ne corresponde jamais. à moins que:
    - le vehicule soit représenté comme une liste (d'autres éléments par exemple)
    - l est un pointeur sur un vehicule dans la liste et pas sur la liste elle-même
    - la liste garde un repère sur le véhicule courant (comme un descriptor) et renvoie son identifiant
    ect
    Et chacune de ces interprétations a des implications pour la compréhension du reste du code...

    Finallement, j'essaie de comprendre ce que ton code fait et voilà ce que j'en tire:
    - Demande identifiant de véhicule iv à l'utilisateur
    - Si idenfiant de liste correspond à iv, avance le pointeur sur la liste sur le lien de la liste (plusieurs listes???)
    - q = l
    - Si q est null affiche "liste vide".
    Sinon tant que le lien de q n'est pas vide et que son identifiant ne correspond pas à iv sauvegarde q dans p et avance q sur son lien.
    - Si il y a un véhicule le lien de la liste est null
    Sinon le lien de p est égal au lien de q.
    (J'interprète le lien de l'avant dernière liste est égale au lien de la dernière liste et donc est null)
    Au final, j'ai pris le temps d'écrire autant pour te dire qu'on ne comprend pas ce que tu cherches à faire avec ce code, qu'il ne semble pas correspondre à la problématique que tu exposes et donc je ne vois pas comment t'aider.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. programme qui plante
    Par warubi dans le forum C++
    Réponses: 35
    Dernier message: 04/02/2007, 10h57
  2. Programme qui plante : seg fault
    Par Premium dans le forum C
    Réponses: 10
    Dernier message: 01/12/2006, 15h12
  3. programme qui plante. chercher/remplacer dans des fichiers.
    Par [Hugo] dans le forum Général Python
    Réponses: 2
    Dernier message: 31/10/2006, 17h10
  4. Faire un programme qui plante et noter le plantage
    Par cedricgirard dans le forum Langage
    Réponses: 9
    Dernier message: 22/03/2006, 16h36
  5. Programme qui plante
    Par harris_macken dans le forum C++
    Réponses: 1
    Dernier message: 22/05/2005, 23h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo