int main(){
char a = 5;
char *p = &a; // 8 bits
int num = 123456789; // 32 bits
*p = num;
return 0;
}
As a is 1 byte and num is 4 bytes, does *p = num truncate num to 1 byte before assigning it to a? or a 32 bit value gets written to memory and corrupts the stack?