Forum Programmation.c++ Erreur de segmentation

Posté par  .
Étiquettes : aucune
0
2
déc.
2005
Bonjours je débute en c++ et j'aimerai savoir d'où pourrai provenir ce genre d'erreur -->

12521: symbol=strcpy; lookup in file=./msg
12521: symbol=strcpy; lookup in file=/usr/lib/libstdc++.so.6
12521: symbol=strcpy; lookup in file=/lib/tls/libm.so.6
12521: symbol=strcpy; lookup in file=/lib/libgcc_s.so.1
12521: symbol=strcpy; lookup in file=/lib/tls/libc.so.6
lookup 0x08048000 0x0000036c -> 0x4013a000 0x00069880 /1 strcpy
Erreur de segmentation

...help!!!

merci
  • # Le code

    Posté par  . Évalué à 3.

    Salut
    Dans un cas comme le tien, montrer ton bout de code, pourrait nous aider à t'expliquer ce que tu n'as pas compris.
    Vue l'état de pile que tu nous a grâcieusement communiqué, il semble que tu cherches à copier dans un morceau de mémoire non allouée ou même à partir d'un morceau de mémoire non-alloué voire que l'un des pointeurs passé à strcpy est 0 (==NULL).
    Segmentation Fault est une erreur souvent rencontrée quand on manipule mal des pointeurs.
    My2c
  • # segfault

    Posté par  . Évalué à 2.

    strcpy ne regarde pas les longueurs de chaines
    donc si tu fais
    strcpy(chaine1, chaine2)

    et que chaine1 est plus grand que l'espace reservé a chaine2, tu va ecrire là ou tu n'a pas le droit, donc provoquer une erreur de segmentation
    • [^] # Re: segfault

      Posté par  . Évalué à 1.

      En fait je m'enbrouille un peu ds ce qu'il faut mettre pour le contructeur d'initialisation...pour un chaine de carctère...
      je vais analyser tous ça....
      Par contre si qq c m'expliquer vraiment l'utilité et ce qu'il faut mettre dans un contructeur d'initialisation, en particulier pour les chaines de caractères....ce serait sympa....merçi...
      • [^] # Re: segfault

        Posté par  (site web personnel) . Évalué à 1.

        std::string, c'est bien. Surtout si tu débutes. Plus tard, tu auras largement le temps de revenir sur les détails de gestion de la mémoire.
      • [^] # Re: segfault

        Posté par  (site web personnel) . Évalué à 2.

        dans un contructeur... tout dépend bien évidemment de l'objet conserné mais par exemple, supposons que tu crées un objet String... ton constructeur ma donner la valeur 0 à ton pointeur de chaîne de caractère et par exemple, 0 à la variable m_size qui pourrait indiquer la longueur de la chaîne... je sais pas vraiment te donner plus d'exemple... tout dépend, comme je l'ai dit, de l'objet en question.
  • # strncpy

    Posté par  . Évalué à 2.

    Pour des raisons de sécurité il ne faut jamais utiliser strcpy mais strncpy . Les 2 fonctions font la même chose mais strncpy permet de fixer le nombre d'octets à copier.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.