我想知道是否有一种方法可以访问 astruct
所指向的数据成员void*
?我试图解释的内容有望在我的示例代码中更加明显:
int main()
{
struct S
{
int val;
};
S s;
s.val = 5;
void* p;
p = malloc(sizeof(S));
*(struct S*) p = s;
std::cout<< *(struct S*)p.val << std::endl;
}
我已经运行了这个精确的代码转换p
,*(int*)p
并且打印得很好,但是,使用上面的精确代码会导致编译错误。还没有找到一个完全完成这个任务的例子。是否可以在转换后访问它的数据成员struct
?为什么或者为什么不?如果是这样,如何?