2010-06-21 9 views
2

Je reçois le message d'erreur suivant avec gcc.Erreur de conversion de caractères const

invalid conversion from ‘char**’ to ‘const char**’ 

Avec ce code.

void foo(const int &argc, const char **argv); 

int main(int argc, char *argv[]) 
{ 
    foo(argc, argv);                
} 

Pourquoi est-ce?

Répondre

8

Lorsqu'elle est utilisée dans la liste des paramètres de fonction, la déclaration char *argv[] est équivalente à la déclaration char **argv. Pour cette raison, lorsque vous passez argv à foo vous essayez actuellement de convertir argv du type char ** au type const char **. C'est illégal. Lisez la FAQ http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.17 pour savoir pourquoi c'est illégal.

+0

+1 pour le lien utile – Dacav

Questions connexes