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 :

Erreur segmentation C++


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Invalidité
    Inscrit en
    mai 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Invalidité

    Informations forums :
    Inscription : mai 2019
    Messages : 83
    Points : 29
    Points
    29
    Par défaut Erreur segmentation C++
    Bonjour a toutes et a tous ,
    Je n'arrive pas a resoudre ce probleme d' erreur de segmentation . Merci de votre aide .

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include <iostream>
    #include <string>
    using namespace std;
    int const N=5;
     
    int compare (const void * a, const void * b) {
      return ( *(int*)a - *(int*)b );
    }
     
    int main ()
    {
     int valeurs[N];
     
     cout <<"Vous avez "<< N << " essai pour trouver le nombre mystere " << endl;
     
     for(int i=0,nb=5;i<N;i++,nb--) 
     {
      cout <<"Entrez une valeur entre 0 et 50 :" << endl;
      cin >> valeurs[i];
      cin.ignore();
      cout <<"Il vous reste " << nb-1 << " nombre a entrer" << endl;
     }
     
      int element=0;
      srand(time(nullptr));
      element = rand()%50;
     
      int *pos;
      pos = (int*) bsearch (&element, valeurs, 7, sizeof (int), compare);
     
      cout <<"Le nombre magique etait : " << *pos << endl;
      if ( pos != NULL )
        cout << *pos << " est dans votre choix" << endl;
      else
        cout << element << " n'est pas dans votre choix" << endl;
     
      return 0;
    }

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2011
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : juin 2011
    Messages : 628
    Points : 3 093
    Points
    3 093
    Par défaut
    Ce n'est absolument pas du C++, mais du C. En C++ il existe std::lower_bound et std::sort ; bien plus sûr que qsort et bsearch. De plus, bsearch et std::lower_bound ne fonctionnent qu'avec des séquences triées, ce qui ne sera absolument pas le cas avec des donnés utilisateurs.

    rand est aussi à remplacer par ce qui se trouve dans l'en-tête <random>.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Invalidité
    Inscrit en
    mai 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Invalidité

    Informations forums :
    Inscription : mai 2019
    Messages : 83
    Points : 29
    Points
    29
    Par défaut
    Merci beaucoup d'avoir pris le temps de repondre a mon petit probleme . Je vais essayer de trouver des exemples pour apprendre a m'en servir .
    Pour en revenir a mon probleme de segmentation , je pense que l'erreur vient de ma boucle for . Qu'en penses tu ?

  4. #4
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2011
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : juin 2011
    Messages : 628
    Points : 3 093
    Points
    3 093
    Par défaut
    Non, c'est votre utilisation de bsearch qui est mauvaise. Ceci ne serait pas arrivé avec une utilisation correcte des classes et fonctions C++.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    juin 2010
    Messages
    6 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 6 223
    Points : 28 230
    Points
    28 230
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int const N = 5;
    ...
    int valeurs[N];
    ...
    bsearch(,,7,,);


    Sinon, utiliser cout et cin ne suffisent pas à faire du C++.
    std::find
    std::find_if
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Invalidité
    Inscrit en
    mai 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Invalidité

    Informations forums :
    Inscription : mai 2019
    Messages : 83
    Points : 29
    Points
    29
    Par défaut
    Tu as raison . Il n'y a pas trop d'interet a faire du C++ a la C .☺

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

Discussions similaires

  1. [ASE 12.5.3] - Erreur segment log - curunreservedpgs > size
    Par lsone dans le forum Adaptive Server Enterprise
    Réponses: 4
    Dernier message: 22/03/2007, 14h34
  2. Erreur segmentation
    Par hornov dans le forum C
    Réponses: 6
    Dernier message: 18/02/2007, 02h02
  3. chaine de caractères , erreur segmentation
    Par psgman113 dans le forum C
    Réponses: 17
    Dernier message: 19/01/2007, 18h51
  4. erreur segmentation java
    Par dj cediorko dans le forum Langage
    Réponses: 1
    Dernier message: 31/12/2006, 13h30
  5. [erreur] Segmentation fault
    Par fveysseire dans le forum C
    Réponses: 11
    Dernier message: 15/06/2006, 15h44

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