Tengo un rutina para guardar eventos en un array maximo 16 posiciones.
char* Eventos[16] ={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"};
Le puse valores para probarlo y bien arranco y La llamo asi
EventoNuevo("Prendi luces"); // o lo que sea
Y la funcion hace lo siguiente
void EventoNuevo( char* QuePaso )
{
char HorayEvento[128];
char* Hora = Reloj.Time();
for (int Bucle=1; Bucle<16; Bucle++)
{
Eventos[Bucle-1]=Eventos[Bucle];
}
strncpy(HorayEvento, Reloj.Time(), sizeof(HorayEvento));
strncat(HorayEvento, QuePaso, (sizeof(HorayEvento) - strlen(HorayEvento)) );
//Eventos[15]=HorayEvento;
Eventos[15]=QuePaso;
}
El tema esta que de esa forma anda perfecto, pero yo necesito agregarle la hora delante por eso esta comentada la linea Eventos[15]=HorayEvento;
Si bien HorayEvento me devuelve perfectamente la hora y el evento, no se x q motivo me pisa todos los valores anteriores, les muestro cuando arranca con 1 evento y despues de hacer 4 eventos me pisa siempre con el ultimo valor a todos los demas... muy raro, incluso le pone la misma hora y texto a los ultimos eventos, obviamente el problema debe estar en esos strncpy y strncat porque lo encontre en internet si bien da el resultado no se que pasa que me hace fallar el array pisando los valores.