Uno/2009: Array[20] per i2c senden: per pointer?

hallo,
ich kämpfe mal wieder mit arrays und pointern.
Das Problem:
ich möchte einen byte array
byte I2Cbyte[20]
per i2c senden - das geht so nicht.
Wire.write(I2Cbyte) // error!
gedacht habe ich es mir so:

byte I2Cbyte[];  //bytes: flag 0, ana 1+2,3+4,5+6,7+8, dig 9(2)...19(13)

//*************************************************************************  
  
void requestEvent() {
  I2Cbyte[ 0]=1;                       //flag

  I2Cbyte[18]=digitalRead(signalpin);  // dig_12
  digitalWrite(ledpin,I2Cbyte[18]);
  
  value=analogRead(0);                 // ana_0
  I2Cbyte[ 1]=highByte(value);   
  I2Cbyte[ 2]=lowByte(value);
 
  Wire.write(I2Cbyte);                 // respond with message of 20 bytes
}

Ich werde aus den Fehlermeldungen nicht schlau, wie ich es stattdessen deklarieren muss:

i2c_dig_ana.ino: In function ‘void requestEvent()’:
i2c_dig_ana:25: error: call of overloaded ‘write(byte [20])’ is ambiguous
C:\Programme\Arduino\libraries\Wire/Wire.h:60: note: candidates are: virtual size_t TwoWire::write(uint8_t)
C:\Programme\Arduino\libraries\Wire/Wire.h:69: note: size_t TwoWire::write(long unsigned int)
C:\Programme\Arduino\libraries\Wire/Wire.h:70: note: size_t TwoWire::write(long int)
C:\Programme\Arduino\libraries\Wire/Wire.h:71: note: size_t TwoWire::write(unsigned int)
C:\Programme\Arduino\libraries\Wire/Wire.h:72: note: size_t TwoWire::write(int)
C:\Programme\Arduino\hardware\arduino\cores\arduino/Print.h:49: note: size_t Print::write(const char*)

Anschlussfrage:
Gibt es einen befehl, wie ich den gesamten Array mit Nullen “flashen” kann?

In C sind Arrays keine komplexen Datentypen. Die Größe des Arrays muss daher extra verwaltet werden. Um Arrays zu schicken, musst du schon die Größe mit angeben:

Wire.write(I2Cbyte, sizeof(I2Cbyte));

Wie soll die Funktion sonst wissen wie viele Bytes sie verarbeiten muss? Strings sind was anderes, da diese Null-Terminiert sind. Aber bei normalen Arrays muss man bei sowas immer die Größe übergeben.

Gibt es einen befehl, wie ich den gesamten Array mit Nullen "flashen" kann?

memset:
http://www.cplusplus.com/reference/cstring/memset/

mille grazie :smiley: