首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

fun =(void (*)(A*)) ptr 与memcpy(&fun,reinterpret_cast<long*>(ptr),4)的区

2012-03-19 
fun (void (*)(A*)) ptr 与memcpy(&fun,reinterpret_castlong*(ptr),4)的区别?class A{public:virtual

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这个变量直接转型为函数指针当然不同。

热点排行