C Pointeur de pointeur
Un pointeur de pointeur est une forme d'indirection multiple, ou une chaîne de pointeurs. Normalement, un pointeur contient l'adresse d'une variable. Lorsque nous définissons un pointeur de pointeur, le premier pointeur contient l'adresse du second pointeur, et le second pointeur pointe vers l'emplacement qui contient la valeur réelle.
Une variable de pointeur vers un pointeur doit être déclarée comme suit, en plaçant deux astérisques avant le nom de la variable. Par exemple, ce qui suit déclare un pointeur vers un pointeur sur un int :
int **var;
Lorsqu'une valeur cible est pointée indirectement par un pointeur vers un autre pointeur, l'accès à cette valeur nécessite l'utilisation de deux opérateurs astérisque, comme le montre l'exemple suivant :

Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
var = 100 Pt1 = 0x7ffee2d5e8d8 *Pt1 = 100 Pt2 = 0x7ffee2d5e8d0 **Pt2 = 100autres extensions