【发布时间】:2014-08-24 07:09:10
【问题描述】:
我在投射方面遇到问题。
A 类有一个公共方法:char* m()
funcA 接收到类型 A 的双指针并将其转换为 void 指针。在 funcB 中,我希望将其转换回类型 A 以调用方法 m()。我已经尝试了以下方法,但失败了。
void funcA(const A** a) {
funcB((void*)a)
}
void funcB(void* b) {
A* a = (A*) b; //
printf("M: %s", a->m()); // => crash!
}
如何将 void 指针转换回类型 A 以便调用该方法?
【问题讨论】:
-
嗯,
A*和A**是两个不同的东西。 -
const **A a的语法真的有效吗?不应该是const A ** a吗? -
@rattmuff:你会如何调用
funcA的方法? -
@unwind 应该,发布错误。
-
@pts 我不知道它是从我无法控制的系统中调用的。我只控制funcB。