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 :

C++ attention:deprecated conversion from string constant to 'char*'


Sujet :

C++

Vue hybride

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 106
    Par défaut C++ attention:deprecated conversion from string constant to 'char*'
    Bonjour a tous,

    je viens vers vous après plusieurs recherche sur le net mais sans sucées.

    voila j'essaye d’exécuter un programme avec code blocks, et je me retrouve avec plusieurs message d'erreur dans mon main du type
    Code cmd : Sélectionner tout - Visualiser dans une fenêtre à part
    attention : deprecated conversion from string constant to 'char*' [-Wwrite-strings]

    les lignes qui me font les erreurs contiennent tous le NEW, exemple ci-dessous :
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
     sRHO = new Block("RO");
    je déclare bien
    et dans mon fichier Block.cpp je déclare comme suite:
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #include "Block.h"
    Block::Block( char *name, Bank *b) : BlockPP(name, b)
    {   
        B = 3;
        Text = ID;
        strcpy(address.name,name);
    }

    auriez vous une idée sur ce qui coince ?
    est ce que cela est due au linkage et que j'ai mal configuré le code blocks,
    ou c'est une erreur de syntaxe ...

    merci de votre aide

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,

    Toutes les chaînes "aeddde" sont stockées dans le data segment, on ne doit donc pas pouvoir les modifier, il faut alors faire const char * c = "aeddde" ou void foo(const char * c);.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 106
    Par défaut
    Merci Neckara pour ta réponse,

    je n'ai pas bien compris ta réponse, que ce que tu veux dire avec "aeddde", et la ligne
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const char * c = "aeddde" 
     void foo(const char * c)
    je doit la mettre a quelle niveau.

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Citation Envoyé par bforzeus Voir le message
    Merci Neckara pour ta réponse,

    je n'ai pas bien compris ta réponse, que ce que tu veux dire avec "aeddde", et la ligne
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const char * c = "aeddde" 
     void foo(const char * c)
    je doit la mettre a quelle niveau.
    A ta ligne sRHO = new Block("RO");, tu lui donne une chaîne constante, il faut donc que le constructeur de Block prenne en paramètre un const char * ou un const std::string &

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 106
    Par défaut
    j'ai modifier le constructeur de la façon suivante :
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include "Block.h"
    Block::Block( const char *name, Bank *b) : BlockPP(name, b)
    {   
        B = 3;
        Text = ID;
        strcpy(address.name,name);
    }

    mais j'ai toujours les même erreurs.
    Code cmd : Sélectionner tout - Visualiser dans une fenêtre à part
    attention : deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    saurai tu pour quoi, n'y a til pas d'autre moins de contourné le probleme

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    BlockPP(name, b) => as-tu pensé à modifier aussi le constructeur de BlockPP ?

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/05/2010, 08h58
  2. Réponses: 2
    Dernier message: 08/12/2009, 12h57
  3. Réponses: 2
    Dernier message: 18/02/2009, 13h30
  4. Conversion error from string "15-AUG-2008"
    Par freud dans le forum SQL
    Réponses: 2
    Dernier message: 17/08/2008, 19h24
  5. error: invalid conversion from `const wxChar*' to `CHAR*'
    Par barbarello dans le forum wxWidgets
    Réponses: 16
    Dernier message: 31/01/2006, 11h28

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