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 :

Question sur FAQ C++ : les fonctions


Sujet :

C++

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 1
    Par défaut Question sur FAQ C++ : les fonctions
    Bonjour je suis actuellement en train de découvrir le C++

    et je ne comprends pas un exemple de la FAQ :

    http://cpp.developpez.com/faq/cpp/?page=Les-fonctions

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void FonctionIncorrecte(char* s) 
    { 
        // ... 
    } 
     
    void FonctionCorrecte(const char* s) 
    { 
        // ... 
    } 
     
    FonctionIncorrecte("bonjour"); // Erreur : "bonjour" est un temporaire 
    FonctionCorrecte("bonjour"); // Ok


    je n'ai aucune erreur a la compilation , exécution et même affichage du contenu de S dans les fonctions respectives

    de quel erreur est -il mention ?

    Merci beaucoup de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    La fonction est incorrecte, mais pas pour la raison indiquée dans ce cours.
    Une string-literal contrairement à ce qui est indiqué, n'est pas un temporaire.

    La plupart des compilateurs ne signalent pourtant pas de défaut car c'est nouveau ça vient de sortir!
    une string-literal c'est une zone mémoire l-value contenant un texte terminé par un 0. Cette zone historiquement pouvait être lue et écrite. Hors cela posait des problèmes d'optimisation sans vrais avantages.
    Il va y avoir une évolution, et la déclaration de cette fonction devra générer une erreur :
    impossible de convertir l'argument de 'const char *' en 'char *' car la conversion perd les qualificateurs.

  3. #3
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 510
    Par défaut
    Bonjour,

    En général, la FAQ C++ est bien faite mais, là, c'est effectivement une erreur.
    Erreur signalée dans un nouveau fil du sous-forum "Contribuez".

Discussions similaires

  1. Question sur vista et les Exe
    Par restesouple dans le forum Windows Forms
    Réponses: 8
    Dernier message: 07/11/2007, 14h57
  2. [Java] Question sur Java et les états.
    Par Cassios dans le forum Autres outils décisionnels
    Réponses: 6
    Dernier message: 19/02/2007, 17h37
  3. Réponses: 3
    Dernier message: 21/10/2006, 16h03
  4. [VBA-E]Encore une question sur csv et les dates
    Par vovor dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/10/2006, 10h43
  5. Question sur exports et les classes (pour une dll)
    Par DjPoke dans le forum Langage
    Réponses: 7
    Dernier message: 08/08/2005, 19h25

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