07/07/23 23:48:11
>>280=285
まず、構造体のアライメントを調べたか?
送信側のマシン・・・アライメント4byte
struct X {
char a; // 1byte + 3byte(4byteになるよう調整)
long b; // 4byte
} x;
sizeof(x) = 8
受信側のマシン・・・アライメント2byte
struct X {
char a; // 1byte + 1byte
long b; // 4byte
} x;
sizeof(x) = 6
これでは受信側は混乱する。
(char *)で宣言するのは全く問題ない。malloc等でメモリを確保していれば。