我在指针方面很难过。基本上,我希望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/

10-08 23:29