C Puntero a puntero
Un puntero a puntero es una forma de indirección multinivel, o una cadena de punteros. Normalmente, un puntero contiene la dirección de una variable. Cuando definimos un puntero a puntero, el primer puntero contiene la dirección del segundo puntero, y el segundo puntero apunta a la ubicación que contiene el valor real.
Una variable puntero a puntero debe declararse de la siguiente manera, es decir, colocando dos asteriscos antes del nombre de la variable. Por ejemplo, lo siguiente declara un puntero a un puntero de tipo int:
int **var;
Cuando un valor objetivo es apuntado indirectamente por un puntero a otro puntero, para acceder a este valor se necesitan dos operadores de asterisco, como se muestra en el siguiente ejemplo:

Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
var = 100 Pt1 = 0x7ffee2d5e8d8 *Pt1 = 100 Pt2 = 0x7ffee2d5e8d0 **Pt2 = 100Otras extensiones
C punteros