Hola a todos:
Estoy haciendo un programa para comparar unos datos con los de las ultimas 24h, y tras ver que no funciona correctamente, he llegado a la conclusion que tengo un problema con los arrays bastante peculiar:
Defino dos arrays de 10 elementos cada uno (en realidad lo hago con 60, pero el error es el mismo), y le asigno el mismo valor a todos los elementos de cada array, pero diferentes entre ambos arrays. Pues he comprobado que un array toma el valor de la ultima posicion del otro array... intuyo que asigna a cada posicion un lugar en la memoria del procesador, pero hasta donde llego, hay una posicion en el array (la ultima) que esta compartiendo esa memoria con otra posicion en el otro (la primera).
Igual con el codigo se ve mas claro:
int TempMaxMinuto[9];
int TempMinMinuto[9];
int Indice;
void setup()
{
Serial.begin(9600);
for (Indice = 0; Indice < 10; Indice++) TempMaxMinuto[Indice]=-100;
for (Indice = 0; Indice < 10; Indice++) TempMinMinuto[Indice]=1000;
Indice = 0;
while (Indice < 10)
{
Serial.print(Indice);
Serial.print("==");
Serial.print(TempMaxMinuto [Indice]);
Serial.print(" ");
Indice ++;
}
Serial.println("");
Indice = 0;
while (Indice < 10)
{
Serial.print(Indice);
Serial.print("==");
Serial.print(TempMinMinuto [Indice]);
Serial.print(" ");
Indice++;
}
Serial.println("");
}
void loop()
{
}
El resultado devuelto es:
0==1000 1==-100 2==-100 3==-100 4==-100 5==-100 6==-100 7==-100 8==-100 9==-100
0==1000 1==1000 2==1000 3==1000 4==1000 5==1000 6==1000 7==1000 8==1000 9==1000
Alguien que me pueda explicar que ocurre y como corregirlo?
Gracias