读/写void *变量的单个字节

时间:2014-08-21 04:52:18

标签: c++ c malloc void-pointers memset

如果我有

void *temp = malloc(128);
memset(temp, 0 , 128);  

我想单独阅读第一个字节,以下是我正在做的事情。

char a[2];
strncpy(a, (char*)temp, 1);
int p = a[0];
//p will be zero in this case

Q1。我确信有更优雅的方式来实现同样的目标。如果是这样,会是什么?

Q2。有没有办法可以单独改变单个字节的值?

假设我希望第一个字节的值等于int值48(即00110000) 我该怎么办? 我在写作方面没有取得任何进展。

1 个答案:

答案 0 :(得分:4)

您可以将其投射到char *然后访问内存

char *buff = temp;
char p = buff[0]; // read first byte