2013-02-22 57 views
-1

我有与5个字段(各1个字节)5个字节的消息。我需要将第5个字节复制到缓冲区。如何使用memcpy来做到这一点?字节复制(使用的memcpy?)

5个字节的只是一个如。这可能有所不同。但到目前为止,请给出一个5字节的解决方案,例如。该字节可以是字符类型或整数。最好是字符。

+6

你尝试任何事情,没有工作? – cnicutar 2013-02-22 06:41:56

回答

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

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

printf("Byte #5 is %c\n", byte5); 
+0

好的。得到它了!感谢:) – aod 2013-02-22 06:46:34

+0

得到它的人:)我只是想不到:)感谢您的帮助! :) – aod 2013-02-22 06:48:58

-3

你应该首先张贴您是否尝试过的方式和在那里你面对困难。

然而,例如,

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

您可以使用memcpy作为,

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

这将您的邮件的副本第五个字节到req_byte。您可以在源缓冲区(+)之后改变数字以复制所需的字节。

希望它可以帮助....

+3

你没有分配任何内存给指针'req_byte'。你的'memcpy'将尝试写入地址0和seg-fault。 – abelenky 2013-02-22 06:52:12

+0

这只是演示如何使用memcpy,而不是实际的代码。 – 2013-02-22 06:55:25