void* ptr1 = NULL;
void* ptr2 = ptr1;
unsigned int *buf = data;//some buffer
//now
ptr2 = buf + 8;
上述ptr2地址的变化并没有体现在ptr1中。
我正在尝试
void* ptr2 = &ptr1;
也。请让我知道这里的错误是什么。
最佳答案
为什么ptr1会跟随ptr2?
如果您希望 ptr1 与 ptr2 具有相同的地址,那么您可以将其设置为 ptr2:
ptr1 = ptr2;
在您的帖子中 ptr1 仍然指向 NULL。所以你需要明确告诉它指向ptr2。
画图让它更清晰,所以去吧:
alt text http://img705.imageshack.us/img705/2433/pointers.png
现在你有 2 个指针指向一些数据或没有数据(NULL)。如果您希望一个指针跟随另一个指针,您需要一个指向指针(2 个星号)的指针,而不仅仅是一个指针(1 个星号)。
void** ptr1 = (void**) &ptr2;
关于c - 如何将 void* 指针 1 分配给 void* 指针 2?面临一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2493313/