Zitat Zitat von damaltor
...3 zeichen lang zu machen, also

unsigned char data[] = "12"

(das letzte zeichen wird automatisch mit dem wert null gefüll, deine variable von oben ist also 5 zeichen lang!)
oder noch einfacher

unsigned char data[3];...
Also ich kenne das anders.
unsigned char data[] = "12" ist genau 2 Zeichen lang.

angenommen man nimmt char data[10],
strcpy(data,"123456789") hägnt automatisch ne binäre 0 an. Aber der Speicherbereich wird nicht vergrößert. nur eventuell der nächstfolgende überschrieben (das kann schwere Folgen haben), aber für solche fälle gibts ja strncpy...

Das was du geschrieben hast stimmt nicht. Und auch dass sein Array aus 5 Zeichen bestehtist Käse.

im Zweifel mit sizeof nochmal nachhaken

Aber dass data[3] aus 3 Byte besteht stimmt.