Here is an example for what a pointer to a pointer ( in C++ you one would normally use a reference to a pointer ) might be good for.

Code:
# include <iostream>
using namespace std;

void ex1(int * pi, int val ) { *pi = val; } 
void ex2(int ** ppi, int val ) { *ppi = new int; **ppi= val;} 

int main() {
   int a = 1;
   int * pa = &a;
   cout << "a=" << a << " *pa=" << * pa<< endl ; // both outputs are 1
   ex1( pa, 2 );
   cout << "a=" << a << " *pa=" << * pa<< endl ; // both outputs are 2
   ex2( &pa, 3 ); // changes the 
   cout << "a=" << a << " *pa=" << * pa<< endl ; // outputs are 2, 3
      // ex2 made pa point to a different location
   delete pa; // pa has to be deleted because ex2 allocated a new pointer to an int
   return 0;
}
Kurt