int を宣言し、c に値を割り当てました。記憶では以下のようです
アドレス 0x20002AD4 で 0x78 0x01 0x00 0x00
int の 1 番目と 2 番目のバイトから値を抽出する必要があります。次のコードで最初のバイトを正常に抽出しました (パケット [2] を参照)。
int dataSize = (lightCount * 3) + 1;
unsigned char packet[totalSize];
packet[0] = 0x7E;
packet[1] = 0x06;
packet[2] = (unsigned char)*(&dataSize); //dataSize LSB - THIS WORKS
packet[3] = (unsigned char)*(&dataSize + 1); //dataSize MSB - THIS DOES NOT
ただし、ポインター演算を使用して int の 2 番目のバイトの値を返そうとすると (packet[3] を参照)、代わりに 4 番目のバイトが返されます。これは、intのサイズが4バイトであるため、アドレスの+1が4バイト移動するためだと思います。
2番目のバイトで値を返す方法を誰かが提案できますか、つまり上記の例では 0x01 を返したいです