读书人

fun =(void (*)(A*)) ptr 与memcpy(amp;f

发布时间: 2012-03-19 22:03:05 作者: rapoo

fun =(void (*)(A*)) ptr 与memcpy(&fun,reinterpret_cast<long*>(ptr),4)的区别?
class A{public:virtual void function(){}};
void (*fun)(A*)

然后请问:
memcpy(&fun,reinterpret_cast<long*>(ptr),4);

fun =(void (*)(A*)) ptr;
有啥区别吗?

ps:都能通过编译,第二个运行会出现未处理异常。

谢谢

[解决办法]
你第2个没有将ptr所包含的地址里面4个字节拷贝到fun,而是说将ptr这个变量直接转型为函数指针当然不同。

读书人网 >C++

热点推荐