-1

5 つのフィールド (それぞれ 1 バイト) を持つ 5 バイトのメッセージがあります。5 番目のバイトをバッファにコピーする必要があります。memcpyを使用してそれを行う方法は?

5バイトは単なる例です。これは異なる場合があります。しかし、今のところ、5バイトの解決策を教えてください。バイトは、文字型または整数のいずれかです。できればキャラ。

4

2 に答える 2

4
char message[5] = {'H', 'e', 'l', 'l', 'o'};
char byte5;

memcpy(&byte5, message+4, 1);

printf("Byte #5 is %c\n", byte5);
于 2013-02-22T06:44:16.623 に答える
-3

最初に、試した方法と困難に直面した場所を投稿する必要があります。

ただし、たとえば、

char buf[5]; /*your message buffer*/
char req_byte;  /*your required byte */

memcpy を次のように使用できます。

memcpy(&req_byte, (buf+4), 1);

これにより、メッセージの 5 番目のバイトが req_byte にコピーされます。ソースバッファの (+) の後の数値を変更して、目的のバイトをコピーできます。

それが役に立てば幸い....

于 2013-02-22T06:48:35.393 に答える