将函数代码复制到另一个地方,并调用debug运行出错?release运行成功?
今天在研究函数代码的执行时,写了下面的程序
#include <stdio.h>
void fun1(int x)
{
printf("%d\n",x);
}
int _tmain(int argc, _TCHAR* argv[])
{
char pppf[200];
memcpy(pppf,(char*)fun1,120);
typedef void (*pf)(int);
pf ppf=(pf)&pppf[0];
ppf(10);//debug error
char* pfun;//用来查看代码空间的值并和复制的值对比
pfun=(char*)fun1;
}
为什么在debug出错?我查看了复制过来的代码是和函数代码空间是一样的,release为什么运行正常?
请高手指点!谢谢!