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

让程序从指定地址开始执行的有关问题?()

2013-12-30 
让程序从指定地址开始执行的问题?(求助)/*************这是代码****************/#include stdio.hvoid(

让程序从指定地址开始执行的问题?(求助)
/*************这是代码****************/
#include <stdio.h>

void  (*p)(void)
{
p = 10;
}

int main()
{
p();
printf("%p\n", p);
return 0;
}
/*************************************/

编译总是出现如下错误:
error C2239: unexpected token '{' following declaration of 'p'
[解决办法]
假设函数 void Test() 地址是0x1000
假设void Test()定义如下:
void Test (){
static int count =0;
printf("%d",++count);
}
int main(){

void (*p)() =(void (*)())0x1000;
p(); //这是没有问题的,结果是输出 从 1 开始,每次运行 输出就加一。  
     //假设 1)0x1000  只是一条指令的一半 ,指令被你截断,程序就飞了。
     //假设 2) 0x1000 根本就不是代码,同样程序也就飞了
     //另外,
     //    3)现在的CPU 可以对代码进行保护,0x1000 如果不可执行,这样的代码;
     // 会产生异常,程序也飞了,或者死了。 
return 0;
}

热点排行