vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 2010
-
15 juin 2005 à 17:01
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 2009
-
16 juin 2005 à 10:07
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...
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 15 juin 2005 à 17:30
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)
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 15 juin 2005 à 20:16
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