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?