如何将void*pointer1赋给void*pointer2?面临一些问题

kp1*_*p11 2 c memory pointers

void* ptr1 = NULL;
void* ptr2 = ptr1;
unsigned int *buf = data;//some buffer

//now
ptr2 = buf + 8;
Run Code Online (Sandbox Code Playgroud)

上述ptr2地址的变化不会反映在ptr1中.我void* ptr2 = &ptr1;也在努力.

请告诉我这里的错误.

Jon*_*onH 7

为什么ptr1会跟随ptr2?

如果你想让ptr1与ptr2具有相同的地址,那么你可以将它设置为ptr2:

ptr1 = ptr2;
Run Code Online (Sandbox Code Playgroud)

在你的帖子中,ptr1仍然指向NULL.所以你需要明确告诉它指向ptr2.

绘图使得它更清晰,所以去吧:

alt text http://img705.imageshack.us/img705/2433/pointers.png

现在你有2个指针指向某些数据或没有数据(NULL).如果你想要一个指针跟随另一个指针,你需要一个指向指针(2个星号)的指针,而不仅仅是一个指针(1个星号).

void** ptr1  = (void**) &ptr2;
Run Code Online (Sandbox Code Playgroud)