First statement of your for loop is not good.
*pointer = pointer[n];
After second and third iteration, pointer will lost its previous elements, pointer[0],pointer[1].
You can create a temporary pointer pointerTemp, to hold nth instance of A, it will not lost other instances of pointer.
for(int n=0; n<3; n++)
{
A* pointerTemp = pointer[n];
for (int i=0; i<10; i++)
{
double data = pointerTemp->Grabdata(i);
double output = pointerTemp->Output(data);
pointerTemp->Passdata(output);
}
}