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 :

Convertir char * en const char **


Sujet :

C++

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Convertir char * en const char **
    Bonjour à tous,

    j'ai un programme en C++ qui interroge une base SQLite. Ce programme à une fenêtre graphique ou je dois mettre tous les champs de la base dans une listBox. Petit souci je n'y arrive pas car j'ai une erreur.

    error C2440 : 'static_cast' : cannot convert from 'char*' to const 'char **'

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    char **argv
    char **champ;
    champ=argv;
    
    //conversion char * to wchar_t
    size_t origsize = strlen(static_cast< const char ** > (champ)) +1;
    const size_t newsize = 100;
    size_t convertedChars = 0;
    wchar_t wcstring[newsize];
    mbstowcs_s(&convertedChars, wcstring, origsize, champ , _TRUNCATE);
    const size_t newsize = 100;
    			
    //conversion wchar_t to CString
    CString cstring(wcstring);
    cstring += " (CString)";

    Je ne sais pas comment faire pour résoudre cette erreur car je ne trouve pas comment faire la conversion.
    Merci d'avance.

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    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 012
    Points : 23 209
    Points
    23 209
    Par défaut
    char * est un pointeur sur un char
    char ** est un pointeur sur un char * et donc un pointeur de pointeur sur un char.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char * ptr;
    char ** ptrptr;
    ptrptr = &ptr;
    Sinon strlen prend un char * et non un char **.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci.
    tu avais raison pour strlen. Mais il prend un const char * en faite ...

    Maintenant il me met qu'il ne peut pas convertir un 'char **' en 'const char *'.
    J'ai demandé à plusieurs collègues de travail mais ils ne savent pas non. Et sur le net non plus. Aurais tu une petite idée ?

    Merci

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    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 012
    Points : 23 209
    Points
    23 209
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char * ptr;
    char **ptr;
    ptr = *ptrptr;
    Tu devrais revoir les bases du C++, surtout les pointeurs.

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup. Cela fonctionne maintenant. J'étais dessus depuis mercredi dernier.

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 03/09/2009, 04h06
  2. Convertir String^ en const char*
    Par Sixdeux dans le forum C++/CLI
    Réponses: 3
    Dernier message: 22/05/2007, 10h58
  3. convertir flotant en "const char*"
    Par chmimi05 dans le forum C++
    Réponses: 3
    Dernier message: 12/03/2007, 00h13
  4. Convertir CString en const char*: ca marche pas
    Par MDiabolo dans le forum Visual C++
    Réponses: 12
    Dernier message: 21/11/2006, 19h10
  5. Convertir un "char" en "CONST char"
    Par N3odyme dans le forum C
    Réponses: 3
    Dernier message: 17/08/2006, 20h48

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