unsigned char * numbers = {1,1,1};
unsigned short * ptr = (unsigned short*) numbers;
*(++ptr)=2;
printf("%d %d %d %d", numbers[0], numbers[1], numbers[2], numbers[3]);
The above can result in undefined behavior, right? Also, what will be printed in the screen?
The result was 1 1 2 0, but could 1 1 0 2 be printed sometime? 
 
     
     
     
    