in_your_phion a écrit :
bonjour,
j'aimerai savoir pourquoi je ne peux pas faire :
Code :
- char * pp[] = {"titi","toto","tat","aaaaaaaaa"};
- pp++;
|
alors que je peux faire :
Code :
- char * t = *(pp + 1);
|
merci ..
|
pp++, c'est une expression qui voudrait changer la valeur de pp. Or pp est un tableau, et est donc un element fixe (ben oui, quoi, le tableau, une fois alloué, il change pas de place). Par contre, pp + 1, ca ne modifie pas la valeur de pp; ca represente l'adresse du 2e element du tableau (l'adresse du premier étant pp), d'apres la signification de l'addition d'un entier a un tableau.
Ton tableau contient des pointeurs sur des chaines de caracteres. Donc, *(pp+1) est un pointeur sur la deuxieme chaine, ce qui permet d'écrire: char * t = *(pp + 1); comme assignation de la valeur d'un pointeur dans un autre.
A+,
Message édité par gilou le 08-05-2008 à 03:57:56
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --