1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
void fooConstConstConst( const char * const * const argv, int argNb){
int i;
//const char * const list[4] = {"roro", "riri", "ruru", "rara"};
//const char str0[10] = "riri";
//argv[0] = str0; // génère une erreur
//argv[0][0] = 'a'; // génère une erreur
//argv = list; // génère une erreur
// => a l'interieur de cette fonction, il me semble donc impossible de changer une des valeurs de argv
for(i=0; i<argNb; i++){
printf("%i : %s\n", i, argv[i]);
}
}
void fooConst(char * * argv, int argNb){
int i;
for(i=0; i<argNb; i++){
printf("%i : %s\n", i, argv[i]);
}
}
int main()
{
const char * tab[4] = {"toto", "titi", "tutu", "tata"};
// => variable de type "const char * *" et non pas "const char * const * const"
char * tab2[4];
char str0[10];
char str1[10];
char str2[10];
char str3[10];
strcpy(str0, "toto");
strcpy(str1, "titi");
strcpy(str2, "tutu");
strcpy(str3, "tata");
tab2[0] = str0;
tab2[1] = str1;
tab2[2] = str2;
tab2[3] = str3;
fooConstConstConst(tab, 4);
fooConstConstConst(tab2, 4); // génère un warning
fooConst(tab, 4); // génère un warning
fooConst(tab2, 4);
return 0;
} |
Partager