Te recomiendo guardar la varaible time_t y no la cadena de caractes. Si guardas el time_t a la hora de mostrar los datos puede cambiar el formato rapidamentes. De la otra forma no.
Ademas no se como trabaja las funciones esas del tiempo. Pero imagino que el string que te estan devolviendo es statico. Eso quiere decir que el puntero que devuelven siempre apunta al mismo lado. Asi que el segundo llamado pisa al primero.
Aviso esta es una suposicion mia. Saludos
Código C++:
Ver original#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
int main()
{
const char *Fecha[3];
time_t fechas[3];
int opcion;
int i=0;
int controlador;
string respuesta;
while(respuesta!="N" && respuesta!="n")
{
cout<<"Presione 1 para entrar!!!"<<endl;
cout<<"Presione 2 para mostrar!!!"<<endl;
cin>>opcion;
switch(opcion)
{
case 1:
cout<<"Hora del sistema:"<<endl;
fechas[i] = tAct;
controlador=i;
i++;
cout<<endl;
break;
case 2:
for(int i=0;i<(controlador+1);i++)
{
cout<<endl;
}
break;
}
cout<<"Desea realizar una nueva accion: s/n?"<<endl;
cin>>respuesta;
}
return 0;
}
Hice la prueba de imprimir el puntero y efectivamente en dos llamados distintos el valor del puntero devuelto es el mismo asi que el segundo llamado te esta pisando al primero.
Si quieres manejar igualmente con cadenas deberias copiarla a un string o un array de caracteres.