2つのint、2つのshort、1つのcharを次々にコピーしたいと思います。
これは私がしたことです:
int32_t a=1;
int32_t b=2;
int16_t c=3;
int16_t d=4;
int8_t e=5;
char*buf=new char[104];
memcpy(buf, &a, 32);
memcpy(buf + 32, &b, 32);
memcpy(buf + 64, &c, 16);
memcpy(buf + 80, &d, 16);
memcpy(buf + 96, &e, 8);
これは正しいです ?私のデバッガーは、3行目が2行目に影響を与えると言っていますが、デバッガーを誤用しているだけかもしれません(具体的には、*((int32_t *)(buf + 32))の値が2番目と3番目のmemcpyの間で変更されたと言っています) 。
ありがとう。