Pregunta básica sobre File.write

Por favor una pregunta: Estoy haciendo un programa que guarda algunos registros (log) en un archivo de la tarjeta SD, pero no logro usar la función write de la clase File, para guardar una estructura que manejo en memoria creada con struct. Por favor si alguien me puede indicar como hacer para que el compilador acepte.

Tengo la siguiente estructura:

typedef struct 
 {
  long hora;
  byte tipo,dato1;
 } miEstructura;

Luego tengo un arreglo de 10 registros de la estructura anterior:

miEstructura arreglo[10];

Entonces en un lugar de mi programa, necesito grabar uno de los registros de de ese arreglo en un archivo de la tarjeta SD, y aquí es donde tengo el problema, no logro hacerlo.

 SD.begin();
 File ar; 
 ar = SD.open(F("archivo.txt"),FILE_WRITE);
 byte a=x; //calculo cuál de las posiciones del arreglo necesito guardar en el archivo
 

 ar.write(arreglo[a],sizeof(miEstructura)); //esta llamada a write no sé cómo hacerla

El compilador no acepta esto que hago, lanza el siguiente error:

error: no matching function for call to 'SDLib::File::write(miEstructura&, unsigned int)'

Hice algunos intentos variando la forma de llamar, incluidos intentos con punteros, pero no logro que el compilador me deje hacerlo. Por favor si me pueden echar un cable.

Acá tienes una buena explicación. Si no lo entiendes mañana te respondo.

https://forum.arduino.cc/index.php?topic=211010.0

Muchas gracias Surbyte. Entendí bien, ya modifiqué mi programa, y compila perfectamente (tan solo me falta verificar si efectivamente graba lo que quiero).

(PD: Tardé en responder porque se me presentó un viaje imprevisto.)

Doy por solucionado este hilo, indicando que todo salió perfecto, comprobé en la computadora que en la tarjeta SD se guardan los datos binarios en forma perfecta.

La clave del asunto que no podía, era hacer esto:

byte *auxiliar = (byte *) &arreglo[a];
ar.write(auxiliar,sizeof(miEstructura));

Gracias nuevamente.