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 :

Crash avec une fonction renvoyant une std::string et return 0;


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 70
    Points : 38
    Points
    38
    Par défaut Crash avec une fonction renvoyant une std::string et return 0;
    Bonjour,

    je viens de découvrir un bug qui était dû à une fonction renvoyant une std::string et à un return 0; dans celle ci ( suite à un copié collé, j'avais oublié de mettre return ""; à la place de return 0; ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    std::string MyFunction()
    {
        //...
        return 0;
    } //Engendrant un crash
    J'aimerai avoir votre avis là dessus : Comment se fait il que le 0 ait été converti en std::string ?
    La correction n'a pas été difficile, mais je m'étonne que le compilateur ( Mingw-gcc TDM 4.3.2-tdm-2 ) ait laissé passé ceci.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Le coupable est le constructeur : string ( const char * s ) 0 n'est jamais que NULL.
    En effet, ni gcc, ni visual n'émettent d'avertissement par défaut.

    Morale : pour tes classes à toi, précise explicit pour ce genre de constructeur, c'est parfois un peu plus embêtant mais ça évite ces bévues.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    Je me disais pourtant "Bizarre, je renvoie bien une std::string et non pas un std::string*". Saleté de conversion

    Merci pour l'explication

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. Renvoyer une table dans une fonction
    Par GeantBioHazard dans le forum Services Web
    Réponses: 0
    Dernier message: 10/07/2009, 09h38
  3. Réponses: 3
    Dernier message: 29/04/2006, 13h02
  4. Réponses: 3
    Dernier message: 16/01/2006, 16h02
  5. Réponses: 4
    Dernier message: 17/03/2004, 17h24

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