char **

char ** - C - Programmation

Marsh Posté le 01-11-2011 à 22:18:06    

Bonjour,
 
Je me pose des petites questions sur un bout de programme en C.
Le type T_Array correspond à un pointeur sur un type T_Ptr; donc T_Array serait égal à char**.
Ce qui correspond à une adresse qui pointe sur une autre adresse et qui elle-même envoie sur le 1er caractère d'une chaine de caractère.
Est-ce correct ?
 

Code :
  1. typedef char* T_Ptr;
  2. typedef T_Ptr* T_Array;
  3. const T_Ptr MyLabel[2]=
  4. {
  5.     "TEXTE_A1", "TEXTE_B1",
  6. };
  7. int main(void)
  8. {
  9.   MyFunction(MyLabel);
  10.   return 0;
  11. }
  12. void MyFunction(const T_Array MyLabel);

Reply

Marsh Posté le 01-11-2011 à 22:18:06   

Reply

Marsh Posté le 02-11-2011 à 01:30:36    

Oui.
 
Dis de cette façon, ça peut sembler illogique mais je pense qu'il faut plutôt le voir comme un tableau :)  
(tableau contenant lui même des pointeurs)


---------------
Doucement le matin, pas trop vite le soir.
Reply

Marsh Posté le 02-11-2011 à 08:30:16    

Merci mrbebert pour ta réponse.
En fouillant sur le net, j'ai trouvé l'information suivante:
char ** p = char * s[N] avec N un nbr;
 
Donc ma fonction MyFunction(const T_Array MyLabel) prend aussi en entrée, un char * s[N] qui équivalent à un char **

Reply

Marsh Posté le 02-11-2011 à 15:46:45    

oui d'ailleurs le prototype de la fonction main s'écrit aussi bien
int main (int argc, char **argv);
que  
int main (int argc, char *argv[]);


---------------
Seul Google le sait...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed