PROBLEMA PARA CAMBIAR EL CONTENIDO DE UN ARRAY DE CARACTERES.

Buenos días compañeros.
Tengo un problema con una tabla de 7 elementos definidos en la linea siguiente:
const int destinos = 7; //Número de destinos
char horario[destinos][6] = {"12:20","12:21","12:22","12:23","12:24","12:25","12:26"};
Es una tabla de horas y mi intención es cambiar el contenido de la misma por valores leídos
del sensor RTC sumando 15 a los minutos.
La función generaHorario() es la encargada de hacerlo pero cuando llega a la linea para actualizar
los valores de la tabla, esta no cambia.
alguien me puede decir donde he metido la pata? Porque seguro que es un problema que reside
entre el respaldo de la silla y el borde de la mesa.
Muchas gracias de antemano a todos.

Solo esta preparado para que funcione en setup(), en el codigo completo se hacen llamadas a la funcion generahorario() desde el Loop, pero por claridad he decidido hacer la llamada solo desde setup para que salga una sola vez.

Os pego el código:

#include "RTClib.h" // libreria ADAFRUIT para DS3231
RTC_DS3231 rtc;
const int destinos = 7; //Número de destinos
char horario[destinos][6] = {"12:20","12:21","12:22","12:23","12:24","12:25","12:26"}; // [6]
void setup() {
// Comprobamos si tenemos el RTC conectado
Serial.begin(115200);
if (! rtc.begin()) {
Serial.println("No hay un módulo RTC");
while (1);}
rtc.adjust(DateTime(F(DATE), F(TIME)));
Serial.println("------------------------------------------");
Serial.println("SACAMOS LOS VALORES ORIGINALES DE LA TABLA");
Serial.println("------------------------------------------");
for(int horasalida=0;horasalida<destinos;horasalida++){
Serial.println(horario[horasalida]);
}
Serial.println("-------------------------------------------------");
Serial.println("VALORES CALCULADOS POR LA FUNCION generahorario()");
generaHorario();
Serial.println("-------------------------------------------------");
Serial.println("---------------------------------");
Serial.println("MOSTRAMOS LOS VALORES MODIFICADOS");
Serial.println("---------------------------------");
for(int horasalida=0;horasalida<destinos;horasalida++){
Serial.println(horario[horasalida]);
}
}
//// Bucle principal del programa
void loop() {
}
//// Gerera tabla de horarios sumando 15min a los minutos.
void generaHorario(){
// Leemos la Hora del RTC
DateTime now = rtc.now();
int HH, MM;
String horas, minutos;
String horaCambiada, cambiadaHora;
char variable[destinos];
HH = (now.hour());
if(HH<10)horas = ("0" + String(HH));
MM = (now.minute());
if(MM<10) minutos = ("0" + String(MM));
for(int newhora=0;newhora<destinos;newhora++){
MM = (MM + 15);
if(MM>59){
MM = MM % 60;
HH = HH + 1;
}
HH = HH % 24;
horas = String(HH);
minutos = String(MM);
if(HH<10)horas = ("0" + String(HH));
if(MM<10) minutos = ("0" + String(MM));
cambiadaHora = horas + ":" + minutos ; //Carga el String con la hora
cambiadaHora.toCharArray(variable,destinos);
horario[newhora][6] = {variable};
Serial.println("horario[" + String(newhora) + "] = " + variable);
}
}

wrong forum (and use code tags)

cambiadaHora = horas + ":" + minutos ; //Carga el String con la hora
cambiadaHora.toCharArray(variable,destinos);
horario[newhora][6] = {variable};;

-->

cambiadaHora = horas + ":" + minutos ; //Carga el String con la hora
strcpy(horario[newhora],cambiadaHora.c_str());

Serial.println("horario[" + String(newhora) + "] = " + variable);-->

Serial.print("horario[");
Serial.print(newhora);
Serial.print("] = ");
Serial.println(cambiadaHora);

(No debes usar la clase String.)

Es increíble como la gente pierde el sentido común.
Escribir un posteo en español en un foro en inglés!!
Lee las Normas del foro.
Tu foro es el español
No lo olvides.
Si usas el foro en inglés, escribes en inglés. Aún haciéndolo si tu código tiene comentarios en español, te lo enviarán para aquí.
Tenlo presente.
Y además edita tu post usando etiquetas como te han pedido y yo lo reafirmo.
Luego de todo esto, bienvenido al foro Arduino.