如果我有
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) 我该怎么办? 我在写作方面没有取得任何进展。
答案 0 :(得分:4)
您可以将其投射到char *
然后访问内存
char *buff = temp;
char p = buff[0]; // read first byte