Array of Pins inesperados resultados

0

Estoy usando el siguiente código para crear una matriz de pin para usar en mi bosquejo de Arduino:

int LEDS[] = {7, 8, 9, 10};
int wait = 100;
int pinCount = 10;

void setup(){
  for(int PIN=7; PIN < pinCount; PIN++){
    pinMode(PIN, OUTPUT);
  }

  Serial.begin(9600);
  Serial.print("First LED: ");
  Serial.println(LEDS[0]);

  Serial.print("LED Array Size: ");
  Serial.println(sizeof(LEDS));

  for(int i=0; i < sizeof(LEDS); i++){
    Serial.print("Testing Array Index[");
    Serial.print(i);
    Serial.print("] with value: ");
    Serial.print(LEDS[i]);
    Serial.println('***********);
  }
}

Me parece bastante simple, pero obtengo un valor el doble del tamaño real de mi matriz y los datos en los índices no son inteligibles. A continuación se muestra el resultado de muestra:

First LED: 7
LED Array Size: 8
Testing Array Index[0] with value: 710794
Testing Array Index[1] with value: 810794
Testing Array Index[2] with value: 910794
Testing Array Index[3] with value: 1010794
Testing Array Index[4] with value: 10010794
Testing Array Index[5] with value: 1010794
Testing Array Index[6] with value: 010794
Testing Array Index[7] with value: 010794

¿Puede alguien ayudarme y ayudarme a obtener el número correcto de índices y los datos, por favor?

    
pregunta sisko

1 respuesta

4

sizeof en una matriz le da el tamaño de toda la matriz en bytes. Debe dividir esto por el tamaño de un solo elemento para obtener el número de elementos.

sizeof(LEDS) / sizeof(LEDS[0])
    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas