【发布时间】:2013-10-24 14:30:12
【问题描述】:
struct limit{
int up;
int down;
};
void *x;
struct limit *l;
l->up=1;
l->down=20;
x=l;
cout<<x->up;
这是我的代码的一部分我在最后一行出现错误'void*' is not a pointer-to-object type。我知道我的代码中的最后一行是错误的。我只想知道如何使用x 变量打印上下值。
【问题讨论】:
-
您无法通过
void指针访问任何成员。你为什么要这样做?你能提供一些上下文吗? -
你必须cast
x。如果你不知道什么是类型转换,你应该得到一些学习资源。 -
注意,您在上面的代码中使用了未初始化的
l。 -
编译器消息实际上说明了一切。由于
void*不是指向对象类型的指针(例如int或bool),因此您无法访问其任何正式不存在的成员。void指针是否指向具有这些成员的某个结构并不重要。 -
是的,解释一下为什么使用
void *?
标签: c++ pointers void-pointers