请注意,我95%不熟悉指针。
所以这就是我的困境,我有一个结构让我们称之为foo
struct foo{
int a;
}
所以让我们创建一个foo的实例
foo test;
现在我想指定一个指向此
的void指针 void *ptest;
ptest = &test;
这一切都很好,但是当涉及到修改内容时(即在foo中的int),我不知道如何处理这个问题。我试过static_cast
这样:
static_cast<foo*>(ptest).a=0;
但这也不起作用。任何帮助,将不胜感激。感谢
答案 0 :(得分:2)
你只需要更换。与 - &gt;
在直接处理对象或其引用时使用点运算符,以及 - &gt;当你通过指针处理它时,运算符。
答案 1 :(得分:2)
您将其转换为指针,因此您需要使用*
运算符取消引用它或使用->
运算符。
选项A:
*(static_cast<foo*>(ptest)).a=0
选项B:
static_cast<foo*>(ptest)->a=0