Bonjour,
Je suis novice en c. J'ai cru comprendre que char *p définissait un pointeur sur une zone char. Mais je n'arrive pas à comprendre ce que fait char **p
Est ce que quelqu'un peut m'aider ?
Bonjour,
Je suis novice en c. J'ai cru comprendre que char *p définissait un pointeur sur une zone char. Mais je n'arrive pas à comprendre ce que fait char **p
Est ce que quelqu'un peut m'aider ?
C'est un pointeur de pointeur ...
Un pointeur (char* par exemple) va pointer vers une variable (de type char).
Un pointeur de pointeur (char**) va dabord pointé vers un pointeur (char*), ce dernier etant celui du dessus.
Difficile d'expliquer ca clairement ...
voila, ce code valide permet d'afficher de trois maniere differente le caractere 'e'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 int main(void) { char variable = 'e'; char *pointeur = &variable; char **pointeurDePointeur = &pointeur; printf ("%c\n", variable); printf ("%c\n", *pointeur ); printf ("%c\n", **pointeurDePointeur ); return EXIT_SUCCESS; }
ok, merci
mais çà sert à quoi un pointeur de pointeur![]()
En general, on utilise ca pour de l'allocation dynamique de tableau (avec la fonction malloc). A ce moment, le nombre '*' corresspond a la dimension max du tableau.
char **Tableau = <.......>
Cela pourrait etre un tableau 2D.
Sinon, on peut passer par adresse dans une fonction pour changer la longueur d'un tableau 1D ....
Bref, y'a plein de possibilité, encore faut-il maitriser l'allocation dynamique.
Ok merci j'y vois un peu plus clair
même si il ya des zones encore bien obscures!![]()
Partager