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 :

problème de SIGSEGV


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 33
    Par défaut problème de SIGSEGV
    Bonjour,

    Je suis confronté à une erreur de segmentation et bien que je l'ai localisée, je n'arrive pas à la comprendre, je vous donne la partie de mon code incriminée en espérant que quelqu'un puisse m'eclairer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //j'ai declaré en variable globale :
    int** lignes=NULL
    //puis dès que je connais m grâce à un fscanf() :
    lignes=malloc(m*sizeof(int*))
    if (lignes==NULL) return -1;
    //Ici il n'y a pas d'erreur puis, lorsque je fais :
    lignes[i]=malloc(k*sizeof(int));
    //j'ai mon erreur...
    De plus je ne peux même pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("test : %d\n",*lignes[i]);
    J'ai également une erreur de segmentation.

    N'étant pas très au fait de ce qui se passe dans la bête lorsque je lance le programme, j'ai quand même essayé de comprendre et si je ne me trompe pas, cela veut dire que je tente d'accéder à une zone de la mémoire à laquelle je n'ai justement pas le droit d'accéder...

    Or, comme l'allocation n'échoue pas, j'ai logiquement "réservé" cette zone... alors pourquoi je ne pourrais pas y accéder ?

    Je vous remercie d'avance de prendre le temps de me lire,

    Cordialement,

    Adrien.

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    As tu vérifié les valeurs de m, k et i au moment de l'exécution ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 33
    Par défaut
    Merci de ta réponse,

    J'ai vérifié, i, m et k ont les valeurs attendues, par contre ce qui m'inquiète c'est que l'erreur n'est plus là (ce qui en soi est positif mais étant donné qu'il s'agit d'un devoir dans le cadre de mes cours, si le programme a un comportement aléatoire ...).

  4. #4
    Membre expérimenté Avatar de quetzacoatl
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 168
    Par défaut
    Pourrais-tu poster un peu plus de code?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 33
    Par défaut
    En fait simplement j'avais une variable qui était utilisée dans une autre fonction d'où mon erreur ça fait quelques jours que j'ai le nez dans ce programme du coup je passe de plus en plus à côté de choses énormes et j'ai posté un peu vite

    Merci de vos réponses (dans ce cas faut-il que je supprime le topic ? je doute qu'il puisse aider quiconque....)

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 502
    Par défaut
    Citation Envoyé par adrienmgs Voir le message
    Merci de vos réponses (dans ce cas faut-il que je supprime le topic ? je doute qu'il puisse aider quiconque....)
    Dans ce cas, le bouton « Délestage » en bas de page, et réversible au besoin, sert à cela. Il permet de signaler que ton fil peut supprimé au besoin, ou qu'il doit l'être. C'est un modérateur du forum qui prendra la décision, ensuite, de le supprimer effectivement ou pas.

Discussions similaires

  1. Problème d'allocation mémoire SIGSEGV
    Par domiq44 dans le forum Bibliothèque standard
    Réponses: 8
    Dernier message: 22/01/2010, 01h01
  2. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  3. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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