如果
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