Llamar a una Matriz (float) & numero según el case seleccionado

BUeno ayer me puse a jugar con los punteros y aunque logré algo que se acerca digamos que necesita del toque de un buen programador.

El programa funciona con la idea de TESLATRONICA pero no permite mostrar bien los datos de todos los elementos de los vectores. Solo un detalle para seguir trabajando.

Te muestro la idea TESLATRONICA y tu mira si te sirve o no

int i;
int numero_case = 1;

float *myPointer; 

float matriz_1 [] = {0, 1.5, 2.8, 3.36, 40, 50};
float matriz_2 [] = {0, 7.05, 4.87, 258.36, 78.34, 5.00};
float matriz_3 [] = {0, 2.47, 7.85, 14, 34, 555.00};

void setup() { 

   // Incremented by 2 to get 3rd value of our array.  
 Serial.begin(9600); 
 Serial.println("Inicio.");
} 


void loop() {
    float **temp; 

 switch (numero_case)  {  //seleccion de cases

    case 1: myPointer = &matriz_1[0];
    break;

    case 2: myPointer = &matriz_2[0];
       break;

    case 3: myPointer = &matriz_3[0];
       break;

    case 4: Serial.println("Terminado");
     while(1);
     break;
   }
    char buffer[30];
    Serial.println();
    Serial.println("numero_case =" + String(numero_case));
    Serial.println();

    for (i = 0; i < 6; i ++) {
  temp = &myPointer;
  *temp = *temp + i;  
  // Esto solo funciona en nodemcu y compilado con ST+DEVIOT 
  //de lo contrario usar Serial.print(**temp), etc etc
  sprintf(buffer,"data =%5.2f", **temp);
  Serial.println(buffer);
    }
    delay(2000);
 numero_case++;
}

El resultado es bastante aceptable.

numero_case =1

data = 0.00
data = 1.50
data = 3.36
data = 0.00 <= MAL
data = 0.00 <= MAL
data = 0.00 <= MAL

numero_case =2

data = 0.00
data = 7.05
data =258.36
data = 0.00 <= MAL
data =40.00 <= MAL
data = 0.00 <= MAL

numero_case =3

data = 0.00
data = 2.47
data =14.00 <= MAL
data = 0.00 <= MAL
data =78.34 <= MAL
data = 3.36 <= MAL
Terminado

Como dije le falta trabajo pero probé la idea. No se si será de tu agrado pero respeta tu criterio @TESLATRONICA