vale str con sizeof me devuelve 0 mientras que con strlen me devulve 5, q si he leido bien cuenta hasta el \0 asique veo que no es 0 , jeje, ya me cuadra mas, lo del 4 se me fue quise poner 5 se q cuenta desde 1 pero asi mas claro agua, ahora una cuestion con punteros y referencias, estoy leyendo una memoria eeprom y lo estoy haciendo con ambas y realmente funciona pero quisiera saber si es la mejor manera.
//funcion de lectura, la escritura lo hago practicamente igual
void eeprom_read_page( int deviceaddress, unsigned int eeaddress,
byte *buffer, int length )
{
Wire.beginTransmission(deviceaddress);
Wire.write((int)(eeaddress >> 8)); // MSB
Wire.write((int)(eeaddress & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(deviceaddress,length);
int c = 0;
for ( c = 0; c < length; c++ )
if (Wire.available()) buffer[c] = Wire.read();
}
char ji[] = "12345"; //el dato almacenado en la posicion 0 y sucesivas
//comienzo lectura
char pi3[0];
Serial.println (sizeof ji);
byte *Dato3 = (byte *) &pi3; //con esta linea me ahorro el convertir nada paso el byte *buffer a int o a char, pero no entiendo muy bien como funciona ni si ocupa demasiado o se puede mejorar.
eeprom_read_page(0x50,0,Dato3,sizeof ji);
delay(10);
Serial.println(pi3); //saco el valor por el serial monitor y va pero esto es un char o un *char
La verdad que tengo un cacao con los punteros y refencia de aupa.