![]() |
#2
pangding2010-10-22 18:29
|

void exit_stub(int status)
{
char a[]="hello world";
printf("exit_stub %d %p\n", status, &status);
return ;
}
int main(int argc,char** argv)
{
printf("\ntest generic function 1\n");
ContainAdd((void*)(exit), (void*)(exit_stub));
printf("\ntest generic function 2\n");
exit_stub(1);
printf("\ntest generic function 3\n");
RemoveAdd((void*)exit);
......
上述程序执行后显示神奇的错误:我的遗憾在于:{
char a[]="hello world";
printf("exit_stub %d %p\n", status, &status);
return ;
}
int main(int argc,char** argv)
{
printf("\ntest generic function 1\n");
ContainAdd((void*)(exit), (void*)(exit_stub));
printf("\ntest generic function 2\n");
exit_stub(1);
printf("\ntest generic function 3\n");
RemoveAdd((void*)exit);
......
在exit_stub(1)返回之前的 printf("exit_stub %d %p\n", status, &status); 能正确执行,为什么返回之后就错误了呢 ?
只有本站会员才能查看附件,请 登录