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

Linux Discussion :

[g++][unix] "Erreur de Segmentation" et long int ne suffit pas pour un int =1600 ?


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 18
    Par défaut [g++][unix] "Erreur de Segmentation" et long int ne suffit pas pour un int =1600 ?
    Bonjour;
    1/ Je suis désolé de reposer cette question sous une autre forme:
    j'essaya les types long int et long long pour une variable qui devrait recevoir une valeur égale à 1000 et plus mais lors de l'éxecution l'affichage de sa valeur me donne une valeur inferieure à 700, mais si je l'affiche juste après sa lecture à partir d'un fichier texte elle donne le bon résultat mais après quelques commandes elle change d'elle même ?
    que se passe t il ?

    2/ Après plusieurs executions de mon programme de calcul il me fait le méssage suivant "Erreur de Segmentation" et s'arrete ?
    quel est le remède ?
    Merci

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    ton problème à rien à voir avec Unix ni g++...

    dans les deux cas, je penche pour un pointeur qui se balade un peu n'importe où ou qui est libéré un peu trop tôt, serait-il possible de voir les traitement que tu fais ?


    pour info, un int de base est stocké sur 32bits, ce qui permet d'avoir des valeurs de l'ordre de 10^20 (de tête)... je ne pense pas que les valeurs du style 700 suffisent pour saturer un entier XD
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Même chose, ça n'a rien à voir avec ton problème, tu as un débordement de capacité d'un tableau qui est peut-être déclaré proche de ta variable et c'est ce qui entraîne le débordement de capacité après. C'est êut-être ça ton problème.
    Solution : débuggeur.

  4. #4
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 18
    Par défaut
    Bonjour, et Merci pour votre atention;
    Alors voici le source que vous demandâtes.
    Indications:
    Le programme se décompose en 3 fichiers: le fichier principale fkd.cpp qui fait appelle aux deux fichiers header lire_maillage.h et calc_kg.h. le fichier maillage.msh est en entrie et source des données à traiter.
    Dans lire_maillage.h " nbnds " est la variable qui me torture le cerveau et l'esprit, le programme la lit à partir de maillage.msh à la ligne 23 et l'affiche à la ligne 72.
    je vous donne aussi mon executable modifié et allegé.
    Ma configuration est:
    SuSE Linux 9.0
    192 MO RAM
    cinq cent MHz pour le P III (désolé j'ai honte)

    Amusez vous bien, je n'est plus de jus dans ma tête.
    Fichiers attachés Fichiers attachés

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    On a pas demandé le source, on a dit qu'il fallait utiliser un débuggeur pour voir ce qui se passait pour définir ce qui ne fonctionne pas correctement. MAis si on a un peu de temps, on regardera, mais un code minimal serait mieux, à savoir un code où tout ce qui est possible d'être ôté serait ôté tout en reproduisant l'erreur.
    Une version compilée n'est pas utile, surtout si les autres n'ont pas le même OS

  6. #6
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 18
    Par défaut
    Merci.
    Mais je n'ai pas de pointeur qui traine quelque part.
    Je jette l'éponge, le torchon, le balai, les produits détergents et tout le reste.

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

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