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

Read/Write a single byte of a void* variable

本文关键字:单个 字节 变量 void      更新时间:2023-10-16

如果

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)我该怎么做呢?

您可以将其强制转换为char *,然后访问内存

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