begin process at 2012 05 28 07:43:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

char** vers const char**


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

char** vers const char**

mercredi 15 juin 2005 à 17:01:53 | char** vers const char**

vecchio56

Administrateur CodeS-SourceS
J'ai une erreur assez bizarre, sous VC++ 7.1. Ca compile avec l'option /TC (compilo C), mais pas /TP (compilo C++):

typedef struct _A
{
  int nElements;
  char** p;
} A;

int main()
{
  A* a = 0;
  const char** p = a->p; // erreur!
}

L'erreur trouvée est: error C2440: 'initialisation' : impossible de convertir de 'char ** ' en 'const char ** '
        La conversion perd les qualificateurs

Si j'enlève le const pas de problème, mais moi je voudrais un const.
Normalement le problème devrait être pour passer de const char** à char**, mais de char** à const char** je vois pas pourquoi ca marche pas
Ou alors ya quelque chose que je vois pas
Je pourrais m'en sortir en bidouillant un peu, c'est juste que je ne comprends pas ce message. Si quelqu'un comprend...

mercredi 15 juin 2005 à 17:17:50 | Re : char** vers const char**

cosmobob

salut,
n'y a t'il pas une ambiguité entre const (char**) et (const char*)* ?
(un pointeur constant vers un char*, et le 2e un pointeur vers un const char*)


mercredi 15 juin 2005 à 17:22:49 | Re : char** vers const char**

vecchio56

Administrateur CodeS-SourceS
Je ne sais pas si c'est ca, mais je résous le problème de cette manière:

typedef char** ptrptrchar;

int main()
{
  ptrptrchar p1;
  const ptrptrchar p2 = p1;
}
Si tu as une solution sans le typedef

mercredi 15 juin 2005 à 17:29:07 | Re : char** vers const char**

bou3

est-ce que ca, ca t`irai?
char** p;
memcpy(p,a->p,sizeof(A));
mercredi 15 juin 2005 à 17:30:31 | Re : char** vers const char**

cosmobob

typedef char** ptrptrchar;
int main()
{
  char** p1;
  const ptrptrchar p2 = p1;
}
ca marche aussi ...
a priori necessaire pour dire que le qualificatif const s'applique a tout le type qui suit... (il doit tomber dans l'ambiguité (const char*)* car la il pourrait pas garantir que ton pointeur pointe toujours vers un const char* a la compilation)
mercredi 15 juin 2005 à 17:30:52 | Re : char** vers const char**

vecchio56

Administrateur CodeS-SourceS
Bah non, j'ai pas envie de copier un truc que je ne vais pas modifier (c'est pour ca que je le veux en const d'ailleurs).
mercredi 15 juin 2005 à 17:31:21 | Re : char** vers const char**

cosmobob

bou3 : ca planterait ce que tu proposes tu copies des trucs dans une zone memoire non initialisée
mercredi 15 juin 2005 à 17:31:47 | Re : char** vers const char**

bou3

merde c vrai
desole :(
mercredi 15 juin 2005 à 17:32:10 | Re : char** vers const char**

vecchio56

Administrateur CodeS-SourceS
cosmobob, tu parles de (const char*)*. C'est juste pour qu'on comprenne? Le compilo lui il veut pas voir ca... Selon toi le typedef serait obligé?
mercredi 15 juin 2005 à 20:16:29 | Re : char** vers const char**

cosmobob

le fait qu'il y ait ambiguité, et qu'au niveau de la syntaxe on puisse pas déclarer un truc du genre (const char*)* permettrait du moins d'expliquer que tu trouves pas comment faire sans le typedef

1 2

Cette discussion est classée dans : int, erreur, const, char, compilo


Répondre à ce message

Sujets en rapport avec ce message

Comment forcer le RTS pour une liaison RS232 [ par ancat ] Bonjourje viens de faire un petit prog (grandement inspire de sources du site) mais je ne saisis pas trop le controle du RTS.Celui ci est-il traite pa Quelle est cette erreur __w64 ? [ par themaste ] Bonjour à tous!Je suis en train de faire un programme, que j'avais fais sous dos avant.Puisque ca marchait, je l'ai repris pour faire une application Erreur C4430 (besoin d'aide) [ par lui88 ] Bonjour , une erreur est apparu dans mon code error c4430:spécificateur de type manquant - int est pris en compte par défaut.remarque: C++ ne prend pa qu'en pensez vous?? besoin d'aide!! lol [ par nelly77 ] bonjour je voudrai créer un tableau avec une liste de produits ayant des attributs comme  leur nom, leur etat dans un stock, la duree de fabrication e Convertir tableau int en const char* et inverse [ par samuraijack1412 ] Bonjour,J'ai écrit une application client-serveur. Ils se communiquent par des sockets TCP. Pour envoyer au serveur un tableau d'entier, j'utilise:int C++ Conversion d'un int en const char* [ par jderf ] Bonjour, Je récupere d'une boîte de dialogue l'index du choix fait. Je souhaite afficher cette valeur dans un message box. Voici mon code Uint Choi Allocation dynamique tableau 2D : erreur de seg [ par noname001 ] Bonjour à tous, [^^happy13] j'aimerais faire appel à vos lumières concernant deux codes. Ils ont tous les deux pour but de créer un tableau 2D dynami Demande l'aide des meilleurs ! ;) [ par jekburn ] Bonjour, Le programme suivant devrait d'en un futur proche sortir et enregistrer toutes les adresses mail existantes. Mais là, la fatigue surement !


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales