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 :

erreur de segmentation


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 65
    Par défaut erreur de segmentation
    Bonjoir !
    j'ai un erreur de ségmentation qui est causé par cette ligne de code :

    int ifetch=atoi(argv[1]);
    je ne sais pas pourquoi !! ni c quoi ""atoi"" ne je le trouve pas dans le programme c'est une des fonction connu comme malloc ?
    pouvez vous m'aider comment je résoud le problem !
    meme un petit pointeur vers une paragraphe qui explique ca !
    merci !

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par debutant-1
    Bonjoir !
    j'ai un erreur de ségmentation qui est causé par cette ligne de code :

    int ifetch=atoi(argv[1]);
    je ne sais pas pourquoi ni c quoi ""atoi"" ni le argv je le trouve pas dans le programme sont 'il des fonction connu comme malloc ?
    pouvez vous m'aider comment je résoud le problem !
    meme un petit pointeur vers une paragraphe qui explique ca !
    merci !
    - atoi n'est plus à utiliser, à la place, utiliser strtol...

    - argv est le premier argument de la ligne de commande, il faut vérifier si le nombre d'arguments de la ligne de commande est supérieur à 1...

    Jc

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 65
    Par défaut
    il declare la fonction main comme ca :
    int main(int argc, char* argv[])

    comment je peut verifier que que le nombre de ligne de commande est superieur a 1?
    merci !

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Citation Envoyé par debutant-1
    int main(int argc, char* argv[])
    argc correspond au nombre d'argument, sachant qu'il y a toujours au moins un argument (généralement la commande tapée pour lancer le programme)

  5. #5
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Citation Envoyé par debutant-1
    comment je peut verifier que que le nombre de ligne de commande est superieur a 1?
    merci !
    (le nombre d'arguments, pas le nombre de lignes de commande )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (argc > 1) {
       /* il y a au moins 1 argument*/
    }
    Il faut savoir que le premier argument est le nom du programme, donc si ya 2 arguments, argc vaut 3 et le 2ème argument est accessible via argv[2]

  6. #6
    Membre chevronné
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (argc==2) // exactement 1 argument
    {
         int i = strtol(argv[1], NULL, 0);
    }

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 65
    Par défaut
    j'arrive pas à suivre !
    premierement : si le nom du programme est le premier argument (qui est par dephot a.out ) il doit correspendre à argv[0] ???
    les autre argument sont les autre fichier execitable c ca ??
    et atoi ou strtol elle font quoi exactement ??
    il y a pas un petit cours dessu !!??
    merci tous pour votre aide !

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

Discussions similaires

  1. Erreurs de segmentation !
    Par anti-conformiste dans le forum Applications et environnements graphiques
    Réponses: 16
    Dernier message: 18/10/2005, 11h11
  2. Erreur de segmentation
    Par Trunks dans le forum C
    Réponses: 3
    Dernier message: 06/10/2005, 18h28
  3. Erreur de segmentation (Inconnue)
    Par Dark-Meteor dans le forum C
    Réponses: 5
    Dernier message: 08/09/2005, 13h42
  4. [Dev-C++] Erreur de segmentation...
    Par sas dans le forum Dev-C++
    Réponses: 11
    Dernier message: 26/03/2005, 14h25
  5. erreur de segmentation
    Par transistor49 dans le forum C++
    Réponses: 10
    Dernier message: 15/03/2005, 11h18

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