取消引用指向另一个指针的void指针

时间:2014-09-28 02:07:46

标签: c pointers

我试图理解C depplier并且在我的一个nirvanenses中,冥想得到了这个问题"如何解除引用指向另一种指针的空指针"我想它可以变得更清晰使用下一个代码:

int a,b,*p1,*p2;
void *p;
a=3;
b=6
p1=&a;
p2=&b
p=&p1;
*p=p2 //How I could be able to do this?

所以在上面的代码中,我希望p1指向与使用p2作为中间p的相同值。我知道做p1 = p2会更好但我想知道我上面写的是否可能

1 个答案:

答案 0 :(得分:2)

void *指针不得取消引用。如果您不想取消引用它们,它们只能用作中间指针存储。 (想想malloc。)

在取消引用void *指针之前,必须将其转换为非void类型,以便

*((int * *) p) = p2;

会在你的例子中起作用。当然,你必须确保演员表是有意义的或任意不好的事情可能发生。编译器无法在这里为您提供帮助。