我在指针方面很难过。基本上,我希望buff void指针指向一个无符号char kbdbuff [],以便每当kbdbuff []发生更改时,它就会反映在buff指向的值中。
我最接近的就是这样做:
kbdbuff[0] = 4;
unsigned char *tempbuf = buff;
*tempbuf = *kbdbuff;
Buff指针最后指向4,但是问题是分配指针后所做的任何更改都不会反映在buff指向的值中。任何帮助将非常感激。
最佳答案
你的意思是这样吗? (根据您提供的信息):
int main(void)
{
void* buff;
unsigned int kbdbuff[4];
buff = kbdbuff;
kbdbuff[0] = 4;
printf("kbdbuff[0] = %d\n", kbdbuff[0]);
printf("buff[0] = %d\n", ((int*)buff)[0]);
kbdbuff[0] = 3;
printf("kbdbuff[0] = %d\n", kbdbuff[0]);
printf("buff[0] = %d\n", ((int*)buff)[0]);
return 0;
}
输出:
kbdbuff[0] = 4
buff[0] = 4
kbdbuff[0] = 3
buff[0] = 3
关于c - 获取指向地址的指针,以便反射(reflect)更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40935610/