..this might help.
Code:
//This creates an array of pointers to input objects
//access example i[ n ]->MyFunction();
input **i;
i = new input*[10];
for(int j = 0; j < 10; j++)
{
i[j] = new input;
}
//This on the other hand creates an array of objects
//access example is i[ n ].MyFunction();
//this is what you might want
//I would use the ** only in two ocassions
//... 1. to create a two dimensional array
//... 2. as a parameter in a function to modify say the root
//... of a tree... but with C++ the obj &myObj eliminates the need for the 2nd case
input* i;
i = new input[10];