First statement of your for loop is not good.
*pointer = pointer[n];
After second and third iteration, pointer will lost its previous elements, pointer,pointer.
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);