首页 > 试题广场 >

要对绝对地址0x100000赋值,我们可以用 (unsign

[问答题]
要对绝对地址0x100000赋值,我们可以用 (unsigned int*)0x100000 = 1234; 那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做?
(void(*)(void))0x100000();        //把0x1000000强制转换为函数指针,函数指针的地址
为0x100000,对函数指针初始化,再调用就可以实现跳转到0x100000处执行了
                //函数指针可以通过函数调用跳转到指定的地址
发表于 2021-07-22 20:24:33 回复(0)
这个题本身就有问题:要对绝对地址0x100000赋值,我们可以用 *(unsigned int*)0x100000 = 1234;
那么要是想让程序跳转到绝对地址是0x100000去执行,应该  *((void(*ptr)())0x100000)();
发表于 2019-07-23 07:26:33 回复(1)
*( (void(*)())0x100000 )();
发表于 2016-03-09 09:30:22 回复(1)
*((void (*)( ))0x100000 ) ( ); 首先要将0x100000强制转换成函数指针,即: (void (*)())0x100000 然后再调用它: *((void (*)())0x100000)(); 用typedef可以看得更直观些: typedef void(*)() voidFuncPtr; *((voidFuncPtr)0x100000)();
发表于 2014-11-15 12:44:45 回复(0)