When I run on this online
cpp compiler, the output is 'A'. However, shouldn't the typecasting change
the arrays into pairs?
What I thought should happen was: since cbuff[20] and cbuff[21] are paired, when
I initialize sbuff[10], the value should go into cbuff[21] first.
#include <iostream>#include <cstring>usingnamespace std;
int main() {
char cbuff[32];
short* sbuff = reinterpret_cast<short*>(&cbuff[0]); // use reinterpret_cast for type punning
sbuff[10] = 65;
cout << static_cast<int>(cbuff[20]); // cast the char to an int to print it correctly
cin.get();
return0;
}
Try this, hope this will help you, or you can choose a different compiler to
run the code. I found this post on the internet; here author listed many cpp
compiler, choose any online compiler and run the code.