In my applications I have several threads that access and modify the same char array.
volatile unsigned char *volatile key[6] = { 0xD4 ,0x32 ,0xF8 ,0x0A ,0x10 ,0xE5 };
Will volatile unsigned char *volatile
guarantee:
Visibility (All other threads will see changes on the chars immediately)
Atomicity (Any change will be executed by one single thread without interruption)