Bonjour
voici mon code :
Dans la déclaration de ma fonction, le mot "const" dans "const char* arg_list[]" veut bien dire "la valeur pointée par le pointeur qui est dans le tableau arg_list[] ne peut être modifiée à l’intérieur de la fonction" ?
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
17
18
19 int parseArgs(const char* arg_list[], int arg_nb){ ... // => la fonction ne change pas le contenu des cahines pointées par arg_list } int main(void){ char* arg_list[4]; // tableau de pointeur de string strcpy(arg_list[0], "toto"); strcpy(arg_list[1], "tutu"); strcpy(arg_list[2], "titi"); strcpy(arg_list[3], "tata"); parseArgs(arg_list, 4); }
Si c'est le cas, alors pourquoi le compilo me renvoi comme erreur (sur l'appel de la fonction) :
note: expected 'const char **' but argument is of type 'char **'
Remarque : le code suivant ne génère pas de warning :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void fooConst(const char *str){ ... } int main(void){ char *myStr = "hello world"; fooConst(myStr); // pas de warning }
Partager